ymaps 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +5 -5
- data/VERSION +1 -1
- data/lib/geokit/geocoders/yandex_geocoder.rb +71 -19
- data/lib/geokit/inflector.rb +22 -0
- data/lib/ymaps.rb +9 -1
- data/lib/ymaps/action_view/html_helper.rb +28 -15
- data/lib/ymaps/action_view/ymapsml_helper.rb +73 -7
- data/ymaps.gemspec +21 -22
- metadata +12 -7
- data/.gitignore +0 -23
data/README.rdoc
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
=
|
1
|
+
= YMaps
|
2
2
|
|
3
|
-
|
3
|
+
Helpers for using Yandex Maps service.
|
4
|
+
|
5
|
+
It includes Geokit-based Geocoder and helper for generating YMapsML files with data for Yandex Maps.
|
4
6
|
|
5
7
|
== Note on Patches/Pull Requests
|
6
8
|
|
@@ -12,6 +14,4 @@ Description goes here.
|
|
12
14
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
13
15
|
* Send me a pull request. Bonus points for topic branches.
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
-
Copyright (c) 2010 Alexander Semyonov. See LICENSE for details.
|
17
|
+
© Alexander Semyonov, 2010. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
@@ -1,13 +1,48 @@
|
|
1
1
|
require 'geokit'
|
2
|
+
require 'geokit/inflector'
|
2
3
|
require 'geokit/geocoders'
|
3
4
|
|
4
5
|
module Geokit
|
5
6
|
self.default_units = :kms
|
6
7
|
|
7
8
|
class LatLng
|
8
|
-
def
|
9
|
+
def gml_pos
|
9
10
|
"#{lng} #{lat}"
|
10
11
|
end
|
12
|
+
|
13
|
+
def ymaps_lnglat
|
14
|
+
"#{lng},#{lat}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def ymaps_lnglat=(lnglat)
|
18
|
+
self.lng, self.lat = lnglat[0], lnglat[1]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class GeoLoc
|
23
|
+
attr_accessor :kind
|
24
|
+
attr_writer :street_number, :street_name
|
25
|
+
|
26
|
+
# Extracts the street number from the street address if the street address
|
27
|
+
# has a value.
|
28
|
+
def street_number
|
29
|
+
@street_number ||= street_address && street_address[/(\d*)/]
|
30
|
+
end
|
31
|
+
|
32
|
+
# Returns the street name portion of the street address.
|
33
|
+
def street_name
|
34
|
+
@street_name ||= street_address && street_address[street_number.length, street_address.length].strip
|
35
|
+
end
|
36
|
+
|
37
|
+
# Do not use ugly Geokit::Inflector::titleize when set city’s name
|
38
|
+
def city=(city)
|
39
|
+
@city = city
|
40
|
+
end
|
41
|
+
|
42
|
+
# Do not use ugly Geokit::Inflector::titleize when set street address
|
43
|
+
def street_address=(address)
|
44
|
+
@street_address = address
|
45
|
+
end
|
11
46
|
end
|
12
47
|
|
13
48
|
module Geocoders
|
@@ -20,6 +55,23 @@ module Geokit
|
|
20
55
|
end
|
21
56
|
|
22
57
|
class YandexGeocoder < Geocoder
|
58
|
+
KIND_ACCURACY_MAP = {
|
59
|
+
'country' => 1,
|
60
|
+
'province' => 2,
|
61
|
+
'area' => 3,
|
62
|
+
# 5 postal code
|
63
|
+
'locality' => 4,
|
64
|
+
'street' => 6,
|
65
|
+
'route' => 6,
|
66
|
+
# 7 kreuzung
|
67
|
+
'house' => 8,
|
68
|
+
'metro' => 8,
|
69
|
+
'railway' => 8,
|
70
|
+
# 9 building
|
71
|
+
# district hydro vegetation cemetery bridge km other
|
72
|
+
# 0 #unknown
|
73
|
+
}
|
74
|
+
PRECISIONS = %w{unknown country state state city zip zip+4 street address building}
|
23
75
|
|
24
76
|
private
|
25
77
|
def self.call_geocoder_service(geocode)
|
@@ -30,18 +82,18 @@ module Geokit
|
|
30
82
|
end
|
31
83
|
|
32
84
|
xml = res.body
|
33
|
-
logger.debug
|
85
|
+
logger.debug("Yandex geocoding: '#{geocode}'. Result: #{xml}")
|
34
86
|
return xml2GeoLoc(xml)
|
35
87
|
end
|
36
88
|
|
37
89
|
def self.do_reverse_geocode(latlng)
|
38
90
|
latlng = LatLng.normalize(latlng)
|
39
|
-
call_geocoder_service(latlng.
|
91
|
+
call_geocoder_service(latlng.ymaps_lnglat) || GeoLoc.new
|
40
92
|
end
|
41
93
|
|
42
94
|
def self.do_geocode(address, options = {})
|
43
95
|
address_str = address.is_a?(GeoLoc) ? address.to_geocodable_s : address
|
44
|
-
call_geocoder_service(address_str)
|
96
|
+
call_geocoder_service(address_str) || GeoLoc.new
|
45
97
|
end
|
46
98
|
|
47
99
|
def self.xml2GeoLoc(xml, address="")
|
@@ -63,7 +115,7 @@ module Geokit
|
|
63
115
|
|
64
116
|
return geoloc
|
65
117
|
else
|
66
|
-
logger.
|
118
|
+
logger.info("Yandex was unable to geocode address: #{address}")
|
67
119
|
return GeoLoc.new
|
68
120
|
end
|
69
121
|
end
|
@@ -73,21 +125,22 @@ module Geokit
|
|
73
125
|
res.provider = 'yandex'
|
74
126
|
|
75
127
|
# basics
|
76
|
-
|
77
|
-
res.lng = coordinates[0]
|
78
|
-
res.lat = coordinates[1]
|
128
|
+
res.ymaps_lnglat = doc.elements['.//Point/pos'].text.to_s.split(' ')
|
79
129
|
|
80
130
|
# extended -- false if not available
|
81
|
-
res.
|
82
|
-
res.
|
83
|
-
res.
|
84
|
-
res.
|
85
|
-
res.
|
86
|
-
res.
|
87
|
-
res.
|
88
|
-
res.
|
89
|
-
|
90
|
-
|
131
|
+
res.full_address = doc.elements['.//GeocoderMetaData/text'].try(:text)
|
132
|
+
res.country = doc.elements['.//CountryName'].try(:text)
|
133
|
+
res.state = doc.elements['.//AdministrativeAreaName'].try(:text)
|
134
|
+
res.province = doc.elements['.//SubAdministrativeAreaName'].try(:text)
|
135
|
+
res.city = doc.elements['.//LocalityName'].try(:text)
|
136
|
+
res.district = doc.elements['.//DependentLocalityName'].try(:text)
|
137
|
+
res.street_name = doc.elements['.//ThoroughfareName'].try(:text)
|
138
|
+
res.street_number = doc.elements['.//PremiseNumber'].try(:text)
|
139
|
+
res.zip = doc.elements['.//PostalCodeNumber'].try(:text)
|
140
|
+
|
141
|
+
res.kind = doc.elements['.//GeocoderMetaData/kind'].try(:text)
|
142
|
+
res.accuracy = KIND_ACCURACY_MAP.fetch(res.kind) { 0 } if res.kind.present?
|
143
|
+
res.precision = PRECISIONS[res.accuracy]
|
91
144
|
|
92
145
|
if suggested_bounds = doc.elements['.//boundedBy']
|
93
146
|
res.suggested_bounds = Bounds.normalize(
|
@@ -97,7 +150,6 @@ module Geokit
|
|
97
150
|
end
|
98
151
|
|
99
152
|
res.success = true
|
100
|
-
|
101
153
|
res
|
102
154
|
end
|
103
155
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'geokit/geocoders'
|
2
|
+
|
3
|
+
module Geokit
|
4
|
+
module Inflector
|
5
|
+
if ''.respond_to?(:bytesize) # Ruby 1.9
|
6
|
+
def bytesize(string)
|
7
|
+
string.bytesize
|
8
|
+
end
|
9
|
+
else # Ruby 1.8
|
10
|
+
def bytesize(string)
|
11
|
+
string.size
|
12
|
+
end
|
13
|
+
end
|
14
|
+
module_function :bytesize
|
15
|
+
|
16
|
+
def url_escape(s)
|
17
|
+
s.gsub(/([^ a-zA-Z0-9_.-]+)/nu) {
|
18
|
+
'%' + $1.unpack('H2' * bytesize($1)).join('%').upcase
|
19
|
+
}.tr(' ', '+')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/ymaps.rb
CHANGED
@@ -6,6 +6,14 @@ module YMaps
|
|
6
6
|
|
7
7
|
def self.geocode(query)
|
8
8
|
require 'geokit/geocoders/yandex_geocoder'
|
9
|
-
Geokit::Geocoders::
|
9
|
+
Geokit::Geocoders::YandexGeocoder.geocode(query)
|
10
10
|
end
|
11
11
|
end
|
12
|
+
|
13
|
+
if defined? ActionView
|
14
|
+
ActionView::Base.send(:include, YMaps::ActionView::Helpers)
|
15
|
+
end
|
16
|
+
|
17
|
+
if defined? Mime
|
18
|
+
Mime::Type.register 'application/xml', :ymapsml
|
19
|
+
end
|
@@ -3,15 +3,15 @@ module YMaps
|
|
3
3
|
module HtmlHelper
|
4
4
|
class StaticMapPoint < Struct.new('MapPoint', :style, :color, :size, :number, :lat, :lng)
|
5
5
|
def to_s
|
6
|
-
"#{
|
6
|
+
"#{ymaps_lnglat},#{style}#{color}#{size}#{number}"
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
10
|
-
@
|
9
|
+
def ymaps_lnglat
|
10
|
+
@ymaps_lnglat ||= "#{lng},#{lat}"
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
14
|
-
@
|
13
|
+
def ymaps_lnglat=(latlng)
|
14
|
+
@ymaps_lnglat = latlng
|
15
15
|
end
|
16
16
|
|
17
17
|
def attributes=(attrs)
|
@@ -24,10 +24,13 @@ module YMaps
|
|
24
24
|
def map_link(resource = nil, options = {})
|
25
25
|
resource, options = nil, resource if resource.is_a?(Hash)
|
26
26
|
|
27
|
+
url_params = options.delete(:url) { {} }
|
27
28
|
href = if resource
|
28
|
-
polymorphic_url(resource, :format => :ymapsml)
|
29
|
+
polymorphic_url(resource, {:format => :ymapsml}.merge(url_params))
|
29
30
|
else
|
30
|
-
url_for(:format => :ymapsml,
|
31
|
+
url_for({:format => :ymapsml,
|
32
|
+
:only_path => false,
|
33
|
+
:time => Time.now}.merge(url_params))
|
31
34
|
end
|
32
35
|
|
33
36
|
tag(:link,
|
@@ -37,14 +40,22 @@ module YMaps
|
|
37
40
|
:type => 'application/ymapsml+xml'))
|
38
41
|
end
|
39
42
|
|
40
|
-
def
|
43
|
+
def ymaps_javascript_path(key = nil)
|
41
44
|
key ||= YMaps.key
|
42
|
-
|
45
|
+
"http://api-maps.yandex.ru/1.1/index.xml?key=#{key}"
|
46
|
+
end
|
47
|
+
|
48
|
+
def ymaps_include_tag(key = nil)
|
49
|
+
javascript_include_tag(ymaps_javascript_path)
|
43
50
|
end
|
44
51
|
|
45
52
|
def static_map(resources, options = {})
|
46
53
|
title = options.delete(:title) { resources.to_s }
|
47
54
|
map_type = options.delete(:map) { 'map' }
|
55
|
+
width = options.delete(:width) { 600 }
|
56
|
+
height = options.delete(:height) { 450 }
|
57
|
+
map_size = "#{width},#{height}"
|
58
|
+
zoom = options.delete(:zoom) { 16 }
|
48
59
|
|
49
60
|
common_point = StaticMapPoint.new(
|
50
61
|
options.delete(:style) { 'pm' },
|
@@ -54,18 +65,20 @@ module YMaps
|
|
54
65
|
)
|
55
66
|
|
56
67
|
collection = Array(resources).inject([]) do |result, resource|
|
57
|
-
common_point.
|
68
|
+
common_point.ymaps_lnglat = resource.latlng.ymaps_lnglat
|
58
69
|
common_point.number += 1
|
59
70
|
result << common_point.to_s
|
60
71
|
result
|
61
72
|
end.join('~')
|
62
73
|
|
63
74
|
content_tag(:div, :class => 'b-map') do
|
64
|
-
image_tag("http://static-maps.yandex.ru/1.x/?key=#{YMaps.key}&l=#{map_type}&pt=#{collection}",
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
75
|
+
image_tag("http://static-maps.yandex.ru/1.x/?key=#{YMaps.key}&l=#{map_type}&pt=#{collection}&size=#{map_size}&z=#{zoom}", options.merge(
|
76
|
+
:title => title,
|
77
|
+
:alt => title,
|
78
|
+
:class => 'static',
|
79
|
+
:width => width,
|
80
|
+
:height => height
|
81
|
+
))
|
69
82
|
end
|
70
83
|
end
|
71
84
|
|
@@ -28,7 +28,7 @@ module YMaps
|
|
28
28
|
class Builder
|
29
29
|
YMAPS_TAG_NAMES = %w(GeoObject GeoObjectCollection style ymaps AnyMetaData).map(&:to_sym)
|
30
30
|
GML_TAG_NAMES = %w(boundedBy description Envelope exterior featureMember
|
31
|
-
featureMembers interior LineString
|
31
|
+
featureMembers interior LineString LinearRing lowerCorner
|
32
32
|
metaDataProperty name Point Polygon pos posList upperCorner).map(&:to_sym)
|
33
33
|
REPR_TAG_NAMES = %w(balloonContentStyle fill fillColor hintContentStyle iconContentStyle
|
34
34
|
lineStyle href iconStyle mapType offset outline parentStyle polygonStyle
|
@@ -39,9 +39,18 @@ module YMaps
|
|
39
39
|
@xml = xml
|
40
40
|
end
|
41
41
|
|
42
|
+
protected
|
43
|
+
def prefixed_method(method, *arguments, &block)
|
44
|
+
@xml.__send__(*xmlns_prefix!(method, arguments), &block)
|
45
|
+
end
|
46
|
+
|
47
|
+
def link_to(name, href)
|
48
|
+
prefixed_method(name, "\##{href}")
|
49
|
+
end
|
50
|
+
|
42
51
|
private
|
43
52
|
def method_missing(method, *arguments, &block)
|
44
|
-
|
53
|
+
prefixed_method(method, *arguments, &block)
|
45
54
|
end
|
46
55
|
|
47
56
|
def xmlns_prefix!(method, arguments)
|
@@ -56,6 +65,15 @@ module YMaps
|
|
56
65
|
end
|
57
66
|
|
58
67
|
class YMapsReprBuilder < Builder
|
68
|
+
ACCEPTABLE_STYLES = {
|
69
|
+
:balloon_content => [:template],
|
70
|
+
:hint_content => [:template],
|
71
|
+
:icon => [:href, :offset, :shadow, :size, :template],
|
72
|
+
:icon_content => [:template],
|
73
|
+
:line => [:stroke_color, :stroke_width],
|
74
|
+
:polygon => [:fill, :fill_color, :outline, :stroke_color, :stroke_width],
|
75
|
+
}
|
76
|
+
|
59
77
|
def view(options = {})
|
60
78
|
View {
|
61
79
|
if options[:type]
|
@@ -65,12 +83,28 @@ module YMaps
|
|
65
83
|
}
|
66
84
|
end
|
67
85
|
|
86
|
+
# Add style definition
|
87
|
+
# @param [Symbol, String] id style name
|
88
|
+
# @param [Hash] options style options
|
68
89
|
def style(id, options = {})
|
90
|
+
options[:hasBalloon] = options.delete(:balloon) if options.key?(:balloon)
|
91
|
+
options[:hasHint] = options.delete(:hint) if options.key?(:hint)
|
92
|
+
parent = options.delete(:parent) { false }
|
69
93
|
Style(options.merge('gml:id' => id.to_s)) {
|
94
|
+
link_to(:parentStyle, parent) if parent
|
70
95
|
yield
|
71
96
|
}
|
72
97
|
end
|
73
98
|
|
99
|
+
ACCEPTABLE_STYLES.each do |name, values|
|
100
|
+
define_method(name) do |options|
|
101
|
+
tag_name = "#{ActiveSupport::Inflector.camelize(name.to_s, false)}Style"
|
102
|
+
send(tag_name) do
|
103
|
+
style_options(options, values)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
74
108
|
def template(id, template_text = nil)
|
75
109
|
Template('gml:id' => id.to_s) do
|
76
110
|
text do
|
@@ -79,10 +113,42 @@ module YMaps
|
|
79
113
|
end
|
80
114
|
end
|
81
115
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
116
|
+
protected
|
117
|
+
|
118
|
+
def style_options(options = {}, acceptable = nil)
|
119
|
+
if acceptable
|
120
|
+
options.assert_valid_keys(acceptable)
|
121
|
+
end
|
122
|
+
# Filling options
|
123
|
+
fill(options[:fill] ? 1 : 0) if options.key?(:fill)
|
124
|
+
fillColor(options[:fill_color]) if options.key?(:fill_color)
|
125
|
+
|
126
|
+
# Outline options
|
127
|
+
outline(options[:outline] ? 1 : 0) if options.key?(:outline)
|
128
|
+
strokeColor(options[:stroke_color]) if options.key?(:stroke_color)
|
129
|
+
strokeWidth(options[:stroke_width]) if options.key?(:stroke_width)
|
130
|
+
|
131
|
+
href(options[:href]) if options.key?(:href)
|
132
|
+
size(*Array(options[:size])) if options.key?(:size)
|
133
|
+
offset(*Array(options[:offset])) if options.key?(:offset)
|
134
|
+
link_to(:template, options[:template]) if options.key?(:template)
|
135
|
+
shadow do
|
136
|
+
style_options(options[:shadow], [:href, :size, :template, :offset])
|
137
|
+
end if options.key?(:shadow)
|
138
|
+
end
|
139
|
+
|
140
|
+
def size(x, y = nil)
|
141
|
+
if x.is_a?(Hash)
|
142
|
+
x, y = x[:x], x[:y]
|
143
|
+
end
|
144
|
+
prefixed_method(:size, :x => x, :y => y)
|
145
|
+
end
|
146
|
+
|
147
|
+
def offset(x, y = nil)
|
148
|
+
if x.is_a?(Hash)
|
149
|
+
x, y = x[:x], x[:y]
|
150
|
+
end
|
151
|
+
prefixed_method(:offset, :x => x, :y => y)
|
86
152
|
end
|
87
153
|
end
|
88
154
|
|
@@ -113,7 +179,7 @@ module YMaps
|
|
113
179
|
|
114
180
|
def point(latlng)
|
115
181
|
Point {
|
116
|
-
pos(latlng.
|
182
|
+
pos(latlng.gml_pos)
|
117
183
|
}
|
118
184
|
end
|
119
185
|
|
data/ymaps.gemspec
CHANGED
@@ -1,53 +1,52 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ymaps}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alexander Semyonov"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-01-27}
|
13
13
|
s.description = %q{Different helpers for generating YMapsML, using YMaps widgets and geocoding via Yandex.Maps}
|
14
14
|
s.email = %q{rotuka@rotuka.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
17
|
+
"README.rdoc"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
21
|
+
"LICENSE",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"init.rb",
|
26
|
+
"lib/geokit/geocoders/yandex_geocoder.rb",
|
27
|
+
"lib/geokit/inflector.rb",
|
28
|
+
"lib/ymaps.rb",
|
29
|
+
"lib/ymaps/action_view.rb",
|
30
|
+
"lib/ymaps/action_view/html_helper.rb",
|
31
|
+
"lib/ymaps/action_view/ymapsml_helper.rb",
|
32
|
+
"test/helper.rb",
|
33
|
+
"test/test_ymaps.rb",
|
34
|
+
"ymaps.gemspec"
|
35
35
|
]
|
36
36
|
s.homepage = %q{http://github.com/rotuka/ymaps}
|
37
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
38
37
|
s.require_paths = ["lib"]
|
39
|
-
s.rubygems_version = %q{1.3.
|
38
|
+
s.rubygems_version = %q{1.3.7}
|
40
39
|
s.summary = %q{Helpers for using YMaps}
|
41
40
|
s.test_files = [
|
42
41
|
"test/helper.rb",
|
43
|
-
|
42
|
+
"test/test_ymaps.rb"
|
44
43
|
]
|
45
44
|
|
46
45
|
if s.respond_to? :specification_version then
|
47
46
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
48
47
|
s.specification_version = 3
|
49
48
|
|
50
|
-
if Gem::Version.new(Gem::
|
49
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
50
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
52
51
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
53
52
|
s.add_runtime_dependency(%q<geokit>, ["= 1.5.0"])
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Alexander Semyonov
|
@@ -14,13 +14,14 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-27 00:00:00 +03:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: shoulda
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
@@ -33,6 +34,7 @@ dependencies:
|
|
33
34
|
name: yard
|
34
35
|
prerelease: false
|
35
36
|
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
36
38
|
requirements:
|
37
39
|
- - ">="
|
38
40
|
- !ruby/object:Gem::Version
|
@@ -45,6 +47,7 @@ dependencies:
|
|
45
47
|
name: geokit
|
46
48
|
prerelease: false
|
47
49
|
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
48
51
|
requirements:
|
49
52
|
- - "="
|
50
53
|
- !ruby/object:Gem::Version
|
@@ -66,13 +69,13 @@ extra_rdoc_files:
|
|
66
69
|
- README.rdoc
|
67
70
|
files:
|
68
71
|
- .document
|
69
|
-
- .gitignore
|
70
72
|
- LICENSE
|
71
73
|
- README.rdoc
|
72
74
|
- Rakefile
|
73
75
|
- VERSION
|
74
76
|
- init.rb
|
75
77
|
- lib/geokit/geocoders/yandex_geocoder.rb
|
78
|
+
- lib/geokit/inflector.rb
|
76
79
|
- lib/ymaps.rb
|
77
80
|
- lib/ymaps/action_view.rb
|
78
81
|
- lib/ymaps/action_view/html_helper.rb
|
@@ -85,11 +88,12 @@ homepage: http://github.com/rotuka/ymaps
|
|
85
88
|
licenses: []
|
86
89
|
|
87
90
|
post_install_message:
|
88
|
-
rdoc_options:
|
89
|
-
|
91
|
+
rdoc_options: []
|
92
|
+
|
90
93
|
require_paths:
|
91
94
|
- lib
|
92
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
93
97
|
requirements:
|
94
98
|
- - ">="
|
95
99
|
- !ruby/object:Gem::Version
|
@@ -97,6 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
97
101
|
- 0
|
98
102
|
version: "0"
|
99
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
100
105
|
requirements:
|
101
106
|
- - ">="
|
102
107
|
- !ruby/object:Gem::Version
|
@@ -106,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
111
|
requirements: []
|
107
112
|
|
108
113
|
rubyforge_project:
|
109
|
-
rubygems_version: 1.3.
|
114
|
+
rubygems_version: 1.3.7
|
110
115
|
signing_key:
|
111
116
|
specification_version: 3
|
112
117
|
summary: Helpers for using YMaps
|