address_picker-rails 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/.document +5 -0
  2. data/Gemfile +23 -0
  3. data/Gemfile.lock +155 -0
  4. data/Guardfile +37 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.md +212 -0
  7. data/Rakefile +49 -0
  8. data/VERSION +1 -0
  9. data/address_picker-rails.gemspec +115 -0
  10. data/lib/address_picker-rails.rb +4 -0
  11. data/lib/address_picker-rails/engine.rb +11 -0
  12. data/spec/dummy/README.rdoc +261 -0
  13. data/spec/dummy/Rakefile +7 -0
  14. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  15. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  16. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  17. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  18. data/spec/dummy/app/mailers/.gitkeep +0 -0
  19. data/spec/dummy/app/models/.gitkeep +0 -0
  20. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  21. data/spec/dummy/config.ru +4 -0
  22. data/spec/dummy/config/application.rb +65 -0
  23. data/spec/dummy/config/boot.rb +10 -0
  24. data/spec/dummy/config/database.yml +25 -0
  25. data/spec/dummy/config/environment.rb +5 -0
  26. data/spec/dummy/config/environments/development.rb +37 -0
  27. data/spec/dummy/config/environments/production.rb +67 -0
  28. data/spec/dummy/config/environments/test.rb +37 -0
  29. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  30. data/spec/dummy/config/initializers/inflections.rb +15 -0
  31. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  32. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  33. data/spec/dummy/config/initializers/session_store.rb +8 -0
  34. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  35. data/spec/dummy/config/locales/en.yml +5 -0
  36. data/spec/dummy/config/routes.rb +58 -0
  37. data/spec/dummy/lib/assets/.gitkeep +0 -0
  38. data/spec/dummy/log/.gitignore +1 -0
  39. data/spec/dummy/log/.gitkeep +0 -0
  40. data/spec/dummy/public/404.html +26 -0
  41. data/spec/dummy/public/422.html +26 -0
  42. data/spec/dummy/public/500.html +25 -0
  43. data/spec/dummy/public/favicon.ico +0 -0
  44. data/spec/dummy/script/rails +6 -0
  45. data/spec/spec_helper.rb +79 -0
  46. data/vendor/assets/javascripts/address_picker-rails.js +189 -0
  47. data/vendor/assets/javascripts/address_picker.js +209 -0
  48. data/vendor/assets/javascripts/address_picker_gmaps.js +130 -0
  49. data/vendor/assets/stylesheets/address_picker-rails.css +0 -0
  50. metadata +260 -0
@@ -0,0 +1,130 @@
1
+ var AddressPickerRails = AddressPickerRails || {}
2
+
3
+ /**
4
+ * Google Maps utilities as a singleton.
5
+ */
6
+ AddressPickerRails.GMaps = function () {
7
+
8
+ // ---------- singleton --------------------------------------------------------------------------------------------
9
+
10
+ if (AddressPickerRails.GMaps.caller != AddressPickerRails.GMaps.instance) {
11
+ throw "AddressPickerRails.GMaps is a singleton, access must be done by AddressPickerRails.GMaps.instance()";
12
+ }
13
+
14
+ if (arguments.callee.singleton) {
15
+ return arguments.callee.singleton;
16
+ }
17
+
18
+ arguments.callee.singleton = this;
19
+
20
+ // ---------- private fields ---------------------------------------------------------------------------------------
21
+
22
+ var STATE_NOT_LOADED = "not_loaded";
23
+ var STATE_LOADING = "loading";
24
+ var STATE_LOADED = "loaded";
25
+
26
+ var state = STATE_NOT_LOADED;
27
+ var callbacks = new Array();
28
+
29
+ // ---------- private methods --------------------------------------------------------------------------------------
30
+
31
+ /**
32
+ * Load the Google Maps API.
33
+ * @param callback the function to call when the API is loaded.
34
+ */
35
+ var doLoad = function (callback) {
36
+ //console.debug("Loading GMaps API");
37
+
38
+ var script = document.createElement("script");
39
+ script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=AddressPickerRails.GMaps.onLoad";
40
+ script.type = "text/javascript";
41
+
42
+ callbacks.push(callback);
43
+ state = STATE_LOADING;
44
+
45
+ $("head").append(script);
46
+ };
47
+
48
+ /**
49
+ * !!! PRIVATE !!!
50
+ * Call all the defined callback functions.
51
+ */
52
+ this.doCallback = function () {
53
+ for (var i in callbacks) {
54
+ callbacks[i]();
55
+ }
56
+ };
57
+
58
+ // ---------- public methods ---------------------------------------------------------------------------------------
59
+
60
+ /**
61
+ * Test if the Google Maps API is loaded and update the state accordingly.
62
+ */
63
+ this.updateStatus = function () {
64
+ if (state == STATE_LOADED) {
65
+ return true;
66
+ }
67
+
68
+ // may be loaded by someone else
69
+ if (typeof google === "undefined") return false;
70
+ if (typeof google.maps === "undefined") return false;
71
+ if (typeof google.maps.Map === "undefined") return false;
72
+
73
+ state = STATE_LOADED;
74
+ return true;
75
+ };
76
+
77
+ /**
78
+ * Test if the Google Maps API is loaded.
79
+ * @return true if the Google Maps API is loaded, false otherwise.
80
+ */
81
+ this.isLoaded = function () {
82
+ this.updateStatus();
83
+ return (state == STATE_LOADED);
84
+ };
85
+
86
+ /**
87
+ * Load the Google Maps API.
88
+ * @param callback the function to call when the API is loaded.
89
+ */
90
+ this.load = function (callback) {
91
+ //console.debug("Loading GMaps");
92
+ this.updateStatus();
93
+
94
+ switch (state) {
95
+ case STATE_NOT_LOADED:
96
+ doLoad(callback);
97
+ break;
98
+ case STATE_LOADING:
99
+ //console.debug("GMaps is loading");
100
+ callbacks.push(callback);
101
+ break;
102
+ case STATE_LOADED:
103
+ //console.debug("GMaps is already loaded");
104
+ callback();
105
+ break;
106
+ default:
107
+ throw "Illegal state: " + state;
108
+ break;
109
+ }
110
+ };
111
+
112
+ };
113
+
114
+ // ---------- static methods -------------------------------------------------------------------------------------------
115
+
116
+ /**
117
+ * Returns the AddressPickerRails.GMaps singleton.
118
+ * @return {AddressPickerRails.GMaps}
119
+ */
120
+ AddressPickerRails.GMaps.instance = function () {
121
+ return new AddressPickerRails.GMaps();
122
+ };
123
+
124
+ /**
125
+ * Global function used as a callback by Google Maps API when loaded.
126
+ * Call 'AddressPickerRails.GMaps.instance().doCallback()';
127
+ */
128
+ AddressPickerRails.GMaps.onLoad = function () {
129
+ AddressPickerRails.GMaps.instance().doCallback();
130
+ };
metadata ADDED
@@ -0,0 +1,260 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: address_picker-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - David DIDIER
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: bundler
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 1.1.0
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.1.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: capybara
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.1.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: guard
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 1.3.0
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.3.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: guard-rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 1.2.0
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.2.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: guard-spork
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 1.1.0
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.1.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: jeweler
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 1.8.4
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.8.4
126
+ - !ruby/object:Gem::Dependency
127
+ name: rdoc
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '3.12'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '3.12'
142
+ - !ruby/object:Gem::Dependency
143
+ name: rspec-rails
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 2.11.0
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 2.11.0
158
+ - !ruby/object:Gem::Dependency
159
+ name: sqlite3
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 1.3.0
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 1.3.0
174
+ description: An address picker for Rails with autocompletion and map picking (adapted
175
+ from https://github.com/sgruhier/jquery-addresspicker)
176
+ email: c_inconnu1@yahoo.fr
177
+ executables: []
178
+ extensions: []
179
+ extra_rdoc_files:
180
+ - LICENSE.txt
181
+ - README.md
182
+ files:
183
+ - .document
184
+ - Gemfile
185
+ - Gemfile.lock
186
+ - Guardfile
187
+ - LICENSE.txt
188
+ - README.md
189
+ - Rakefile
190
+ - VERSION
191
+ - address_picker-rails.gemspec
192
+ - lib/address_picker-rails.rb
193
+ - lib/address_picker-rails/engine.rb
194
+ - spec/dummy/README.rdoc
195
+ - spec/dummy/Rakefile
196
+ - spec/dummy/app/assets/javascripts/application.js
197
+ - spec/dummy/app/assets/stylesheets/application.css
198
+ - spec/dummy/app/controllers/application_controller.rb
199
+ - spec/dummy/app/helpers/application_helper.rb
200
+ - spec/dummy/app/mailers/.gitkeep
201
+ - spec/dummy/app/models/.gitkeep
202
+ - spec/dummy/app/views/layouts/application.html.erb
203
+ - spec/dummy/config.ru
204
+ - spec/dummy/config/application.rb
205
+ - spec/dummy/config/boot.rb
206
+ - spec/dummy/config/database.yml
207
+ - spec/dummy/config/environment.rb
208
+ - spec/dummy/config/environments/development.rb
209
+ - spec/dummy/config/environments/production.rb
210
+ - spec/dummy/config/environments/test.rb
211
+ - spec/dummy/config/initializers/backtrace_silencers.rb
212
+ - spec/dummy/config/initializers/inflections.rb
213
+ - spec/dummy/config/initializers/mime_types.rb
214
+ - spec/dummy/config/initializers/secret_token.rb
215
+ - spec/dummy/config/initializers/session_store.rb
216
+ - spec/dummy/config/initializers/wrap_parameters.rb
217
+ - spec/dummy/config/locales/en.yml
218
+ - spec/dummy/config/routes.rb
219
+ - spec/dummy/lib/assets/.gitkeep
220
+ - spec/dummy/log/.gitignore
221
+ - spec/dummy/log/.gitkeep
222
+ - spec/dummy/public/404.html
223
+ - spec/dummy/public/422.html
224
+ - spec/dummy/public/500.html
225
+ - spec/dummy/public/favicon.ico
226
+ - spec/dummy/script/rails
227
+ - spec/spec_helper.rb
228
+ - vendor/assets/javascripts/address_picker-rails.js
229
+ - vendor/assets/javascripts/address_picker.js
230
+ - vendor/assets/javascripts/address_picker_gmaps.js
231
+ - vendor/assets/stylesheets/address_picker-rails.css
232
+ homepage: http://github.com/ddidier/address_picker-rails
233
+ licenses:
234
+ - MIT
235
+ post_install_message:
236
+ rdoc_options: []
237
+ require_paths:
238
+ - lib
239
+ required_ruby_version: !ruby/object:Gem::Requirement
240
+ none: false
241
+ requirements:
242
+ - - ! '>='
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ segments:
246
+ - 0
247
+ hash: 3555880016345463368
248
+ required_rubygems_version: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ! '>='
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ requirements: []
255
+ rubyforge_project:
256
+ rubygems_version: 1.8.24
257
+ signing_key:
258
+ specification_version: 3
259
+ summary: An address picker with autocompletion and map picking
260
+ test_files: []