def bullet
height = @options[:height].to_f
@graph_width = @options.has_key?(:width) ? @options[:width].to_f : 100.0
good_color = @options.has_key?(:good_color) ? @options[:good_color] : '#eeeeee'
satisfactory_color = @options.has_key?(:satisfactory_color) ? @options[:satisfactory_color] : '#bbbbbb'
bad_color = @options.has_key?(:bad_color) ? @options[:bad_color] : '#999999'
bullet_color = @options.has_key?(:bullet_color) ? @options[:bullet_color] : 'black'
@thickness = height/3.0
create_canvas(@graph_width, height, good_color)
@value = @norm_data
@good_value = @options[:good].to_f
@graph_height = @options[:height]
qualitative_range_colors = [satisfactory_color, bad_color]
[:satisfactory, :bad].each_with_index do |indicator, index|
next unless @options.has_key?(indicator)
@draw = @draw.fill(qualitative_range_colors[index])
indicator_width_x = @graph_width * (@options[indicator].to_f / @good_value)
@draw = @draw.rectangle(0, 0, indicator_width_x.to_i, @graph_height)
end
if @options.has_key?(:target)
@draw = @draw.fill(bullet_color)
target_x = @graph_width * (@options[:target].to_f / @good_value)
half_thickness = (@thickness / 2.0).to_i
bar_width = 1.0
@draw = @draw.rectangle(target_x.to_i, half_thickness, (target_x + bar_width).to_i, @thickness * 2 + half_thickness)
end
@draw = @draw.fill(bullet_color)
@draw = @draw.rectangle(0, @thickness.to_i, @graph_width * (@data.first.to_f / @good_value), (@thickness * 2.0).to_i)
@draw.draw(@canvas)
@canvas
end