typeahead-addresspicker-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fc4746af67e5fcd8af2145127449066077c4a0d1
4
+ data.tar.gz: 4ba6352a42641e26e365a32523d7bdbe2ac6a146
5
+ SHA512:
6
+ metadata.gz: 145f298eee0d0dc384f9ebfc86e9f5c447cc33968122844b2ac8e7b0b3843a4ad78585a60e19427c003e4e45bee276d87664d7d6cc5a45c6037569d84175e199
7
+ data.tar.gz: f4b504125ad7edf6954f4296b8166b4b8f6597547d7eac2bd3099647a36360b3b301ce83d223bc99668856ffdcb077fc02c364a729d96cacf655b4237f9f4c42
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in typeahead-addresspicker-rails.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Igor Varavko
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # Typeahead Address Picker
2
+
3
+ This asset gem packages the typeahead-addresspicker.js for the Rails asset pipeline.
4
+
5
+ To learn more about [typeahead-addresspicker.js](https://github.com/sgruhier/typeahead-addresspicker).
6
+
7
+ This gem includes the standard and minified versions of the assets.
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ gem 'typeahead-addresspicker-rails'
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ ## Usage
20
+
21
+ To start using the typeahead-addresspicker.js in your rails app enable it via the asset pipeline (app/assets/javascripts/application.js).
22
+
23
+ Add one of the following to your application.js manifest:
24
+
25
+ ```js
26
+
27
+ //= require typeahead-addresspicker
28
+
29
+ //= require typeahead-addresspicker.min
30
+
31
+ ```
32
+
33
+
34
+ ## Contributing
35
+
36
+ 1. Fork it ( https://github.com/[my-github-username]/typeahead-addresspicker-rails/fork )
37
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
38
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
39
+ 4. Push to the branch (`git push origin my-new-feature`)
40
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,10 @@
1
+ require "typeahead/addresspicker/rails/version"
2
+
3
+ module Typeahead
4
+ module Addresspicker
5
+ module Rails
6
+ class Engine < ::Rails::Engine
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ module Typeahead
2
+ module Addresspicker
3
+ module Rails
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'typeahead/addresspicker/rails/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "typeahead-addresspicker-rails"
8
+ spec.version = Typeahead::Addresspicker::Rails::VERSION
9
+ spec.authors = ["Igor Varavko"]
10
+ spec.email = ["ivaravko@me.com"]
11
+ spec.summary = %q{This asset gem packages the typeahead-addresspicker.js for the Rails asset pipeline.}
12
+ spec.description = %q{This asset gem packages the typeahead-addresspicker.js for the Rails asset pipeline.}
13
+ spec.homepage = "https://github.com/ivaravko/typeahead-addresspicker-rails"
14
+ spec.license = "MIT"
15
+
16
+ spec.add_dependency "railties", ">= 3.1"
17
+ spec.add_dependency "actionpack", ">= 3.1"
18
+ spec.add_dependency "jquery-rails"
19
+ spec.add_dependency "twitter-typeahead-rails"
20
+
21
+ spec.add_development_dependency "rails", ">= 3.1"
22
+
23
+ spec.files = `git ls-files -z`.split("\x0")
24
+ spec.require_paths = ["lib"]
25
+
26
+ spec.add_development_dependency "bundler", "~> 1.6"
27
+ spec.add_development_dependency "rake"
28
+ end
@@ -0,0 +1,225 @@
1
+ (function() {
2
+ var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
3
+ __hasProp = {}.hasOwnProperty,
4
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
5
+
6
+ (function($) {
7
+ this.AddressPickerResult = (function() {
8
+ function AddressPickerResult(placeResult, fromReverseGeocoding) {
9
+ this.placeResult = placeResult;
10
+ this.fromReverseGeocoding = fromReverseGeocoding != null ? fromReverseGeocoding : false;
11
+ this.latitude = this.placeResult.geometry.location.lat();
12
+ this.longitude = this.placeResult.geometry.location.lng();
13
+ }
14
+
15
+ AddressPickerResult.prototype.addressTypes = function() {
16
+ var component, type, types, _i, _j, _len, _len1, _ref, _ref1;
17
+ types = [];
18
+ _ref = this.addressComponents();
19
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
20
+ component = _ref[_i];
21
+ _ref1 = component.types;
22
+ for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
23
+ type = _ref1[_j];
24
+ if (types.indexOf(type) === -1) {
25
+ types.push(type);
26
+ }
27
+ }
28
+ }
29
+ return types;
30
+ };
31
+
32
+ AddressPickerResult.prototype.addressComponents = function() {
33
+ return this.placeResult.address_components || [];
34
+ };
35
+
36
+ AddressPickerResult.prototype.address = function() {
37
+ return this.placeResult.formatted_address;
38
+ };
39
+
40
+ AddressPickerResult.prototype.nameForType = function(type, shortName) {
41
+ var component, _i, _len, _ref;
42
+ if (shortName == null) {
43
+ shortName = false;
44
+ }
45
+ _ref = this.addressComponents();
46
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
47
+ component = _ref[_i];
48
+ if (component.types.indexOf(type) !== -1) {
49
+ return (shortName ? component.short_name : component.long_name);
50
+ }
51
+ }
52
+ return null;
53
+ };
54
+
55
+ AddressPickerResult.prototype.lat = function() {
56
+ return this.latitude;
57
+ };
58
+
59
+ AddressPickerResult.prototype.lng = function() {
60
+ return this.longitude;
61
+ };
62
+
63
+ AddressPickerResult.prototype.setLatLng = function(latitude, longitude) {
64
+ this.latitude = latitude;
65
+ this.longitude = longitude;
66
+ };
67
+
68
+ AddressPickerResult.prototype.isAccurate = function() {
69
+ return !this.placeResult.geometry.viewport;
70
+ };
71
+
72
+ AddressPickerResult.prototype.isReverseGeocoding = function() {
73
+ return this.fromReverseGeocoding;
74
+ };
75
+
76
+ return AddressPickerResult;
77
+
78
+ })();
79
+ return this.AddressPicker = (function(_super) {
80
+ __extends(AddressPicker, _super);
81
+
82
+ function AddressPicker(options) {
83
+ if (options == null) {
84
+ options = {};
85
+ }
86
+ this.markerDragged = __bind(this.markerDragged, this);
87
+ this.updateBoundsForPlace = __bind(this.updateBoundsForPlace, this);
88
+ this.updateMap = __bind(this.updateMap, this);
89
+ this.options = $.extend({
90
+ local: [],
91
+ datumTokenizer: function(d) {
92
+ return Bloodhound.tokenizers.whitespace(d.num);
93
+ },
94
+ queryTokenizer: Bloodhound.tokenizers.whitespace,
95
+ autocompleteService: {
96
+ types: ["geocode"]
97
+ },
98
+ zoomForLocation: 16,
99
+ reverseGeocoding: false
100
+ }, options);
101
+ AddressPicker.__super__.constructor.call(this, this.options);
102
+ if (this.options.map) {
103
+ this.initMap();
104
+ }
105
+ this.placeService = new google.maps.places.PlacesService(document.createElement('div'));
106
+ }
107
+
108
+ AddressPicker.prototype.bindDefaultTypeaheadEvent = function(typeahead) {
109
+ typeahead.bind("typeahead:selected", this.updateMap);
110
+ return typeahead.bind("typeahead:cursorchanged", this.updateMap);
111
+ };
112
+
113
+ AddressPicker.prototype.initMap = function() {
114
+ var markerOptions, _ref, _ref1;
115
+ if ((_ref = this.options) != null ? (_ref1 = _ref.map) != null ? _ref1.gmap : void 0 : void 0) {
116
+ this.map = this.options.map.gmap;
117
+ } else {
118
+ this.mapOptions = $.extend({
119
+ zoom: 3,
120
+ center: new google.maps.LatLng(0, 0),
121
+ mapTypeId: google.maps.MapTypeId.ROADMAP,
122
+ boundsForLocation: this.updateBoundsForPlace
123
+ }, this.options.map);
124
+ this.map = new google.maps.Map($(this.mapOptions.id)[0], this.mapOptions);
125
+ }
126
+ this.lastResult = null;
127
+ markerOptions = $.extend({
128
+ draggable: true,
129
+ visible: false,
130
+ position: this.map.getCenter(),
131
+ map: this.map
132
+ }, this.options.marker || {});
133
+ this.marker = new google.maps.Marker(markerOptions);
134
+ if (markerOptions.draggable) {
135
+ return google.maps.event.addListener(this.marker, 'dragend', this.markerDragged);
136
+ }
137
+ };
138
+
139
+ AddressPicker.prototype.get = function(query, cb) {
140
+ var service;
141
+ service = new google.maps.places.AutocompleteService();
142
+ this.options.autocompleteService.input = query;
143
+ return service.getPlacePredictions(this.options.autocompleteService, (function(_this) {
144
+ return function(predictions) {
145
+ $(_this).trigger('addresspicker:predictions', [predictions]);
146
+ return cb(predictions);
147
+ };
148
+ })(this));
149
+ };
150
+
151
+ AddressPicker.prototype.updateMap = function(event, place) {
152
+ return this.placeService.getDetails(place, (function(_this) {
153
+ return function(response) {
154
+ var _ref;
155
+ _this.lastResult = new AddressPickerResult(response);
156
+ if (_this.marker) {
157
+ _this.marker.setPosition(response.geometry.location);
158
+ _this.marker.setVisible(true);
159
+ }
160
+ if (_this.map) {
161
+ if ((_ref = _this.mapOptions) != null) {
162
+ _ref.boundsForLocation(response);
163
+ }
164
+ }
165
+ return $(_this).trigger('addresspicker:selected', _this.lastResult);
166
+ };
167
+ })(this));
168
+ };
169
+
170
+ AddressPicker.prototype.updateBoundsForPlace = function(response) {
171
+ if (response.geometry.viewport) {
172
+ return this.map.fitBounds(response.geometry.viewport);
173
+ } else {
174
+ this.map.setCenter(response.geometry.location);
175
+ return this.map.setZoom(this.options.zoomForLocation);
176
+ }
177
+ };
178
+
179
+ AddressPicker.prototype.markerDragged = function() {
180
+ if (this.options.reverseGeocoding) {
181
+ return this.reverseGeocode(this.marker.getPosition());
182
+ } else {
183
+ if (this.lastResult) {
184
+ this.lastResult.setLatLng(this.marker.getPosition().lat(), this.marker.getPosition().lng());
185
+ } else {
186
+ this.lastResult = new AddressPickerResult({
187
+ geometry: {
188
+ location: this.marker.getPosition()
189
+ }
190
+ });
191
+ }
192
+ return $(this).trigger('addresspicker:selected', this.lastResult);
193
+ }
194
+ };
195
+
196
+ AddressPicker.prototype.reverseGeocode = function(position) {
197
+ if (this.geocoder == null) {
198
+ this.geocoder = new google.maps.Geocoder();
199
+ }
200
+ return this.geocoder.geocode({
201
+ location: position
202
+ }, (function(_this) {
203
+ return function(results) {
204
+ if (results && results.length > 0) {
205
+ _this.lastResult = new AddressPickerResult(results[0], true);
206
+ return $(_this).trigger('addresspicker:selected', _this.lastResult);
207
+ }
208
+ };
209
+ })(this));
210
+ };
211
+
212
+ AddressPicker.prototype.getGMap = function() {
213
+ return this.map;
214
+ };
215
+
216
+ AddressPicker.prototype.getGMarker = function() {
217
+ return this.marker;
218
+ };
219
+
220
+ return AddressPicker;
221
+
222
+ })(Bloodhound);
223
+ })(jQuery);
224
+
225
+ }).call(this);
@@ -0,0 +1,3 @@
1
+ /*! typeahead-addresspicker - v1.0.0 - 2014-05-18
2
+ * https://github.com/sgruhier/typeahead-addresspicker
3
+ * Copyright (c) 2014 Sebastien Gruhier; Licensed MIT */(function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b={}.hasOwnProperty,c=function(a,c){function d(){this.constructor=a}for(var e in c)b.call(c,e)&&(a[e]=c[e]);return d.prototype=c.prototype,a.prototype=new d,a.__super__=c.prototype,a};!function(b){return this.AddressPickerResult=function(){function a(a,b){this.placeResult=a,this.fromReverseGeocoding=null!=b?b:!1,this.latitude=this.placeResult.geometry.location.lat(),this.longitude=this.placeResult.geometry.location.lng()}return a.prototype.addressTypes=function(){var a,b,c,d,e,f,g,h,i;for(c=[],h=this.addressComponents(),d=0,f=h.length;f>d;d++)for(a=h[d],i=a.types,e=0,g=i.length;g>e;e++)b=i[e],-1===c.indexOf(b)&&c.push(b);return c},a.prototype.addressComponents=function(){return this.placeResult.address_components||[]},a.prototype.address=function(){return this.placeResult.formatted_address},a.prototype.nameForType=function(a,b){var c,d,e,f;for(null==b&&(b=!1),f=this.addressComponents(),d=0,e=f.length;e>d;d++)if(c=f[d],-1!==c.types.indexOf(a))return b?c.short_name:c.long_name;return null},a.prototype.lat=function(){return this.latitude},a.prototype.lng=function(){return this.longitude},a.prototype.setLatLng=function(a,b){this.latitude=a,this.longitude=b},a.prototype.isAccurate=function(){return!this.placeResult.geometry.viewport},a.prototype.isReverseGeocoding=function(){return this.fromReverseGeocoding},a}(),this.AddressPicker=function(d){function e(c){null==c&&(c={}),this.markerDragged=a(this.markerDragged,this),this.updateBoundsForPlace=a(this.updateBoundsForPlace,this),this.updateMap=a(this.updateMap,this),this.options=b.extend({local:[],datumTokenizer:function(a){return Bloodhound.tokenizers.whitespace(a.num)},queryTokenizer:Bloodhound.tokenizers.whitespace,autocompleteService:{types:["geocode"]},zoomForLocation:16,reverseGeocoding:!1},c),e.__super__.constructor.call(this,this.options),this.options.map&&this.initMap(),this.placeService=new google.maps.places.PlacesService(document.createElement("div"))}return c(e,d),e.prototype.bindDefaultTypeaheadEvent=function(a){return a.bind("typeahead:selected",this.updateMap),a.bind("typeahead:cursorchanged",this.updateMap)},e.prototype.initMap=function(){var a,c,d;return(null!=(c=this.options)?null!=(d=c.map)?d.gmap:void 0:void 0)?this.map=this.options.map.gmap:(this.mapOptions=b.extend({zoom:3,center:new google.maps.LatLng(0,0),mapTypeId:google.maps.MapTypeId.ROADMAP,boundsForLocation:this.updateBoundsForPlace},this.options.map),this.map=new google.maps.Map(b(this.mapOptions.id)[0],this.mapOptions)),this.lastResult=null,a=b.extend({draggable:!0,visible:!1,position:this.map.getCenter(),map:this.map},this.options.marker||{}),this.marker=new google.maps.Marker(a),a.draggable?google.maps.event.addListener(this.marker,"dragend",this.markerDragged):void 0},e.prototype.get=function(a,c){var d;return d=new google.maps.places.AutocompleteService,this.options.autocompleteService.input=a,d.getPlacePredictions(this.options.autocompleteService,function(a){return function(d){return b(a).trigger("addresspicker:predictions",[d]),c(d)}}(this))},e.prototype.updateMap=function(a,c){return this.placeService.getDetails(c,function(a){return function(c){var d;return a.lastResult=new AddressPickerResult(c),a.marker&&(a.marker.setPosition(c.geometry.location),a.marker.setVisible(!0)),a.map&&null!=(d=a.mapOptions)&&d.boundsForLocation(c),b(a).trigger("addresspicker:selected",a.lastResult)}}(this))},e.prototype.updateBoundsForPlace=function(a){return a.geometry.viewport?this.map.fitBounds(a.geometry.viewport):(this.map.setCenter(a.geometry.location),this.map.setZoom(this.options.zoomForLocation))},e.prototype.markerDragged=function(){return this.options.reverseGeocoding?this.reverseGeocode(this.marker.getPosition()):(this.lastResult?this.lastResult.setLatLng(this.marker.getPosition().lat(),this.marker.getPosition().lng()):this.lastResult=new AddressPickerResult({geometry:{location:this.marker.getPosition()}}),b(this).trigger("addresspicker:selected",this.lastResult))},e.prototype.reverseGeocode=function(a){return null==this.geocoder&&(this.geocoder=new google.maps.Geocoder),this.geocoder.geocode({location:a},function(a){return function(c){return c&&c.length>0?(a.lastResult=new AddressPickerResult(c[0],!0),b(a).trigger("addresspicker:selected",a.lastResult)):void 0}}(this))},e.prototype.getGMap=function(){return this.map},e.prototype.getGMarker=function(){return this.marker},e}(Bloodhound)}(jQuery)}).call(this);
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: typeahead-addresspicker-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Igor Varavko
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: actionpack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '3.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '3.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jquery-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: twitter-typeahead-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '3.1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '3.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.6'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.6'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: This asset gem packages the typeahead-addresspicker.js for the Rails
112
+ asset pipeline.
113
+ email:
114
+ - ivaravko@me.com
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".gitignore"
120
+ - Gemfile
121
+ - LICENSE.txt
122
+ - README.md
123
+ - Rakefile
124
+ - lib/typeahead/addresspicker/rails.rb
125
+ - lib/typeahead/addresspicker/rails/version.rb
126
+ - typeahead-addresspicker-rails.gemspec
127
+ - vendor/assets/javascripts/typeahead-addresspicker.js
128
+ - vendor/assets/javascripts/typeahead-addresspicker.min.js
129
+ homepage: https://github.com/ivaravko/typeahead-addresspicker-rails
130
+ licenses:
131
+ - MIT
132
+ metadata: {}
133
+ post_install_message:
134
+ rdoc_options: []
135
+ require_paths:
136
+ - lib
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ requirements: []
148
+ rubyforge_project:
149
+ rubygems_version: 2.2.2
150
+ signing_key:
151
+ specification_version: 4
152
+ summary: This asset gem packages the typeahead-addresspicker.js for the Rails asset
153
+ pipeline.
154
+ test_files: []