lib/gull/polygon.rb in gull-0.2.9 vs lib/gull/polygon.rb in gull-0.2.10

- old
+ new

@@ -1,17 +1,19 @@ module Gull class Polygon attr_accessor :coordinates - def initialize polygon - self.coordinates = polygon.split(" ").collect {|coords| coords.split(",").collect {|coord| coord.to_f} } + def initialize(polygon) + self.coordinates = polygon.split(' ').collect do |coords| + coords.split(',').collect(&:to_f) + end end def centroid - low_x = 0 + low_x = 0 low_y = 0 - high_x = 0 + high_x = 0 high_y = 0 coordinates.each do |pair| x_bounds = bounds pair.first, low_x, high_x low_x = x_bounds.first @@ -26,38 +28,39 @@ center_y = low_y + ((high_y - low_y) / 2) [center_x, center_y] end - def image_url api_key, options={} - opts = { - :width => 640, - :height => 640, - :color => "0xff0000", - :weight => 3, - :fillcolor => "0xff000060", - :maptype => "roadmap" + def image_url(api_key, options = {}) + options = { + width: 640, + height: 640, + color: '0xff0000', + weight: 3, + fillcolor: '0xff000060', + maptype: 'roadmap' }.merge(options) - url_base = "http://maps.googleapis.com/maps/api/staticmap" - "#{url_base}?size=#{opts[:width]}x#{opts[:height]}&maptype=#{opts[:maptype]}&path=color:#{opts[:color]}" + - "|weight:#{opts[:weight]}|fillcolor:#{opts[:fillcolor]}|#{coordinates_piped}&key=#{api_key}" + url_base = 'http://maps.googleapis.com/maps/api/staticmap' + "#{url_base}?size=#{options[:width]}x#{options[:height]}" \ + "&maptype=#{options[:maptype]}&path=color:#{options[:color]}" \ + "|weight:#{options[:weight]}|fillcolor:#{options[:fillcolor]}" \ + "|#{coordinates_piped}&key=#{api_key}" end - private + private - def bounds point, low, high - if point < low or low == 0 + def bounds(point, low, high) + if point < low || low == 0 low = point - elsif point > high or high == 0 + elsif point > high || high == 0 high = point end [low, high] end def coordinates_piped - coordinates.collect {|pair| pair.join "," }.join "|" + coordinates.collect { |pair| pair.join ',' }.join '|' end - end -end \ No newline at end of file +end