ahoy_matey 1.5.3 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +88 -0
  3. data/CONTRIBUTING.md +42 -0
  4. data/LICENSE.txt +1 -1
  5. data/README.md +369 -380
  6. data/app/controllers/ahoy/base_controller.rb +15 -15
  7. data/app/controllers/ahoy/events_controller.rb +8 -2
  8. data/app/controllers/ahoy/visits_controller.rb +8 -1
  9. data/app/jobs/ahoy/geocode_job.rb +10 -0
  10. data/app/jobs/ahoy/geocode_v2_job.rb +28 -0
  11. data/config/routes.rb +1 -1
  12. data/lib/ahoy.rb +68 -86
  13. data/lib/ahoy/base_store.rb +97 -0
  14. data/lib/ahoy/controller.rb +26 -17
  15. data/lib/ahoy/database_store.rb +89 -0
  16. data/lib/ahoy/engine.rb +7 -7
  17. data/lib/ahoy/helper.rb +40 -0
  18. data/lib/ahoy/model.rb +5 -27
  19. data/lib/ahoy/{properties.rb → query_methods.rb} +25 -9
  20. data/lib/ahoy/tracker.rb +101 -42
  21. data/lib/ahoy/utils.rb +7 -0
  22. data/lib/ahoy/version.rb +1 -1
  23. data/lib/ahoy/visit_properties.rb +99 -37
  24. data/lib/generators/ahoy/activerecord_generator.rb +41 -0
  25. data/lib/generators/ahoy/base_generator.rb +13 -0
  26. data/lib/generators/ahoy/install_generator.rb +44 -0
  27. data/lib/generators/ahoy/mongoid_generator.rb +16 -0
  28. data/lib/generators/ahoy/templates/active_record_event_model.rb.tt +10 -0
  29. data/lib/generators/ahoy/templates/active_record_migration.rb.tt +62 -0
  30. data/lib/generators/ahoy/templates/active_record_visit_model.rb.tt +6 -0
  31. data/lib/generators/ahoy/templates/base_store_initializer.rb.tt +20 -0
  32. data/lib/generators/ahoy/templates/database_store_initializer.rb.tt +5 -0
  33. data/lib/generators/ahoy/{stores/templates/mongoid_event_model.rb → templates/mongoid_event_model.rb.tt} +4 -2
  34. data/lib/generators/ahoy/{stores/templates/mongoid_visit_model.rb → templates/mongoid_visit_model.rb.tt} +15 -9
  35. data/vendor/assets/javascripts/ahoy.js +336 -113
  36. metadata +54 -144
  37. data/.gitignore +0 -17
  38. data/Gemfile +0 -6
  39. data/Rakefile +0 -8
  40. data/ahoy_matey.gemspec +0 -38
  41. data/lib/ahoy/deckhands/location_deckhand.rb +0 -49
  42. data/lib/ahoy/deckhands/request_deckhand.rb +0 -52
  43. data/lib/ahoy/deckhands/technology_deckhand.rb +0 -47
  44. data/lib/ahoy/deckhands/traffic_source_deckhand.rb +0 -22
  45. data/lib/ahoy/deckhands/utm_parameter_deckhand.rb +0 -23
  46. data/lib/ahoy/geocode_job.rb +0 -13
  47. data/lib/ahoy/logger_silencer.rb +0 -75
  48. data/lib/ahoy/stores/active_record_store.rb +0 -60
  49. data/lib/ahoy/stores/active_record_token_store.rb +0 -113
  50. data/lib/ahoy/stores/base_store.rb +0 -88
  51. data/lib/ahoy/stores/bunny_store.rb +0 -33
  52. data/lib/ahoy/stores/fluentd_store.rb +0 -17
  53. data/lib/ahoy/stores/kafka_store.rb +0 -40
  54. data/lib/ahoy/stores/kinesis_firehose_store.rb +0 -42
  55. data/lib/ahoy/stores/log_store.rb +0 -53
  56. data/lib/ahoy/stores/mongoid_store.rb +0 -63
  57. data/lib/ahoy/subscribers/active_record.rb +0 -19
  58. data/lib/ahoy/throttle.rb +0 -17
  59. data/lib/generators/ahoy/stores/active_record_events_generator.rb +0 -53
  60. data/lib/generators/ahoy/stores/active_record_generator.rb +0 -16
  61. data/lib/generators/ahoy/stores/active_record_visits_generator.rb +0 -43
  62. data/lib/generators/ahoy/stores/bunny_generator.rb +0 -15
  63. data/lib/generators/ahoy/stores/custom_generator.rb +0 -15
  64. data/lib/generators/ahoy/stores/fluentd_generator.rb +0 -15
  65. data/lib/generators/ahoy/stores/kafka_generator.rb +0 -15
  66. data/lib/generators/ahoy/stores/kinesis_firehose_generator.rb +0 -15
  67. data/lib/generators/ahoy/stores/log_generator.rb +0 -15
  68. data/lib/generators/ahoy/stores/mongoid_events_generator.rb +0 -19
  69. data/lib/generators/ahoy/stores/mongoid_generator.rb +0 -14
  70. data/lib/generators/ahoy/stores/mongoid_visits_generator.rb +0 -27
  71. data/lib/generators/ahoy/stores/templates/active_record_event_model.rb +0 -12
  72. data/lib/generators/ahoy/stores/templates/active_record_events_migration.rb +0 -19
  73. data/lib/generators/ahoy/stores/templates/active_record_initializer.rb +0 -3
  74. data/lib/generators/ahoy/stores/templates/active_record_visit_model.rb +0 -4
  75. data/lib/generators/ahoy/stores/templates/active_record_visits_migration.rb +0 -57
  76. data/lib/generators/ahoy/stores/templates/bunny_initializer.rb +0 -9
  77. data/lib/generators/ahoy/stores/templates/custom_initializer.rb +0 -10
  78. data/lib/generators/ahoy/stores/templates/fluentd_initializer.rb +0 -3
  79. data/lib/generators/ahoy/stores/templates/kafka_initializer.rb +0 -9
  80. data/lib/generators/ahoy/stores/templates/kinesis_firehose_initializer.rb +0 -17
  81. data/lib/generators/ahoy/stores/templates/log_initializer.rb +0 -3
  82. data/lib/generators/ahoy/stores/templates/mongoid_initializer.rb +0 -3
  83. data/test/properties/mysql_json_test.rb +0 -18
  84. data/test/properties/mysql_text_test.rb +0 -19
  85. data/test/properties/postgresql_hstore_test.rb +0 -18
  86. data/test/properties/postgresql_json_test.rb +0 -18
  87. data/test/properties/postgresql_jsonb_test.rb +0 -18
  88. data/test/properties/postgresql_text_test.rb +0 -19
  89. data/test/test_helper.rb +0 -99
  90. data/test/visit_properties_test.rb +0 -44
metadata CHANGED
@@ -1,87 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ahoy_matey
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-01 00:00:00.000000000 Z
11
+ date: 2019-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: railties
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: addressable
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: browser
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '2.0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2.0'
26
+ version: '5'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: geocoder
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - ">="
60
32
  - !ruby/object:Gem::Version
61
- version: '0'
33
+ version: 1.4.5
62
34
  type: :runtime
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - ">="
67
39
  - !ruby/object:Gem::Version
68
- version: '0'
40
+ version: 1.4.5
69
41
  - !ruby/object:Gem::Dependency
70
- name: referer-parser
42
+ name: safely_block
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - ">="
74
46
  - !ruby/object:Gem::Version
75
- version: 0.3.0
47
+ version: 0.2.1
76
48
  type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
52
  - - ">="
81
53
  - !ruby/object:Gem::Version
82
- version: 0.3.0
54
+ version: 0.2.1
83
55
  - !ruby/object:Gem::Dependency
84
- name: user_agent_parser
56
+ name: device_detector
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
59
  - - ">="
@@ -95,13 +67,13 @@ dependencies:
95
67
  - !ruby/object:Gem::Version
96
68
  version: '0'
97
69
  - !ruby/object:Gem::Dependency
98
- name: request_store
70
+ name: bundler
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
73
  - - ">="
102
74
  - !ruby/object:Gem::Version
103
75
  version: '0'
104
- type: :runtime
76
+ type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
@@ -109,13 +81,13 @@ dependencies:
109
81
  - !ruby/object:Gem::Version
110
82
  version: '0'
111
83
  - !ruby/object:Gem::Dependency
112
- name: uuidtools
84
+ name: rake
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
87
  - - ">="
116
88
  - !ruby/object:Gem::Version
117
89
  version: '0'
118
- type: :runtime
90
+ type: :development
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
93
  requirements:
@@ -123,49 +95,35 @@ dependencies:
123
95
  - !ruby/object:Gem::Version
124
96
  version: '0'
125
97
  - !ruby/object:Gem::Dependency
126
- name: safely_block
98
+ name: minitest
127
99
  requirement: !ruby/object:Gem::Requirement
128
100
  requirements:
129
101
  - - ">="
130
102
  - !ruby/object:Gem::Version
131
- version: 0.1.1
132
- type: :runtime
103
+ version: '0'
104
+ type: :development
133
105
  prerelease: false
134
106
  version_requirements: !ruby/object:Gem::Requirement
135
107
  requirements:
136
108
  - - ">="
137
109
  - !ruby/object:Gem::Version
138
- version: 0.1.1
139
- - !ruby/object:Gem::Dependency
140
- name: rack-attack
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "<"
144
- - !ruby/object:Gem::Version
145
- version: '6'
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "<"
151
- - !ruby/object:Gem::Version
152
- version: '6'
110
+ version: '0'
153
111
  - !ruby/object:Gem::Dependency
154
- name: bundler
112
+ name: combustion
155
113
  requirement: !ruby/object:Gem::Requirement
156
114
  requirements:
157
- - - "~>"
115
+ - - ">="
158
116
  - !ruby/object:Gem::Version
159
- version: '1.5'
117
+ version: '0'
160
118
  type: :development
161
119
  prerelease: false
162
120
  version_requirements: !ruby/object:Gem::Requirement
163
121
  requirements:
164
- - - "~>"
122
+ - - ">="
165
123
  - !ruby/object:Gem::Version
166
- version: '1.5'
124
+ version: '0'
167
125
  - !ruby/object:Gem::Dependency
168
- name: rake
126
+ name: rails
169
127
  requirement: !ruby/object:Gem::Requirement
170
128
  requirements:
171
129
  - - ">="
@@ -179,7 +137,7 @@ dependencies:
179
137
  - !ruby/object:Gem::Version
180
138
  version: '0'
181
139
  - !ruby/object:Gem::Dependency
182
- name: minitest
140
+ name: sqlite3
183
141
  requirement: !ruby/object:Gem::Requirement
184
142
  requirements:
185
143
  - - ">="
@@ -193,7 +151,7 @@ dependencies:
193
151
  - !ruby/object:Gem::Version
194
152
  version: '0'
195
153
  - !ruby/object:Gem::Dependency
196
- name: activerecord
154
+ name: pg
197
155
  requirement: !ruby/object:Gem::Requirement
198
156
  requirements:
199
157
  - - ">="
@@ -207,7 +165,7 @@ dependencies:
207
165
  - !ruby/object:Gem::Version
208
166
  version: '0'
209
167
  - !ruby/object:Gem::Dependency
210
- name: pg
168
+ name: mysql2
211
169
  requirement: !ruby/object:Gem::Requirement
212
170
  requirements:
213
171
  - - ">="
@@ -221,7 +179,7 @@ dependencies:
221
179
  - !ruby/object:Gem::Version
222
180
  version: '0'
223
181
  - !ruby/object:Gem::Dependency
224
- name: mysql2
182
+ name: mongoid
225
183
  requirement: !ruby/object:Gem::Requirement
226
184
  requirements:
227
185
  - - ">="
@@ -234,86 +192,47 @@ dependencies:
234
192
  - - ">="
235
193
  - !ruby/object:Gem::Version
236
194
  version: '0'
237
- description: Simple, powerful visit tracking for Rails
238
- email:
239
- - andrew@chartkick.com
195
+ description:
196
+ email: andrew@chartkick.com
240
197
  executables: []
241
198
  extensions: []
242
199
  extra_rdoc_files: []
243
200
  files:
244
- - ".gitignore"
245
201
  - CHANGELOG.md
246
- - Gemfile
202
+ - CONTRIBUTING.md
247
203
  - LICENSE.txt
248
204
  - README.md
249
- - Rakefile
250
- - ahoy_matey.gemspec
251
205
  - app/controllers/ahoy/base_controller.rb
252
206
  - app/controllers/ahoy/events_controller.rb
253
207
  - app/controllers/ahoy/visits_controller.rb
208
+ - app/jobs/ahoy/geocode_job.rb
209
+ - app/jobs/ahoy/geocode_v2_job.rb
254
210
  - config/routes.rb
255
211
  - lib/ahoy.rb
212
+ - lib/ahoy/base_store.rb
256
213
  - lib/ahoy/controller.rb
257
- - lib/ahoy/deckhands/location_deckhand.rb
258
- - lib/ahoy/deckhands/request_deckhand.rb
259
- - lib/ahoy/deckhands/technology_deckhand.rb
260
- - lib/ahoy/deckhands/traffic_source_deckhand.rb
261
- - lib/ahoy/deckhands/utm_parameter_deckhand.rb
214
+ - lib/ahoy/database_store.rb
262
215
  - lib/ahoy/engine.rb
263
- - lib/ahoy/geocode_job.rb
264
- - lib/ahoy/logger_silencer.rb
216
+ - lib/ahoy/helper.rb
265
217
  - lib/ahoy/model.rb
266
- - lib/ahoy/properties.rb
267
- - lib/ahoy/stores/active_record_store.rb
268
- - lib/ahoy/stores/active_record_token_store.rb
269
- - lib/ahoy/stores/base_store.rb
270
- - lib/ahoy/stores/bunny_store.rb
271
- - lib/ahoy/stores/fluentd_store.rb
272
- - lib/ahoy/stores/kafka_store.rb
273
- - lib/ahoy/stores/kinesis_firehose_store.rb
274
- - lib/ahoy/stores/log_store.rb
275
- - lib/ahoy/stores/mongoid_store.rb
276
- - lib/ahoy/subscribers/active_record.rb
277
- - lib/ahoy/throttle.rb
218
+ - lib/ahoy/query_methods.rb
278
219
  - lib/ahoy/tracker.rb
220
+ - lib/ahoy/utils.rb
279
221
  - lib/ahoy/version.rb
280
222
  - lib/ahoy/visit_properties.rb
281
223
  - lib/ahoy/warden.rb
282
224
  - lib/ahoy_matey.rb
283
- - lib/generators/ahoy/stores/active_record_events_generator.rb
284
- - lib/generators/ahoy/stores/active_record_generator.rb
285
- - lib/generators/ahoy/stores/active_record_visits_generator.rb
286
- - lib/generators/ahoy/stores/bunny_generator.rb
287
- - lib/generators/ahoy/stores/custom_generator.rb
288
- - lib/generators/ahoy/stores/fluentd_generator.rb
289
- - lib/generators/ahoy/stores/kafka_generator.rb
290
- - lib/generators/ahoy/stores/kinesis_firehose_generator.rb
291
- - lib/generators/ahoy/stores/log_generator.rb
292
- - lib/generators/ahoy/stores/mongoid_events_generator.rb
293
- - lib/generators/ahoy/stores/mongoid_generator.rb
294
- - lib/generators/ahoy/stores/mongoid_visits_generator.rb
295
- - lib/generators/ahoy/stores/templates/active_record_event_model.rb
296
- - lib/generators/ahoy/stores/templates/active_record_events_migration.rb
297
- - lib/generators/ahoy/stores/templates/active_record_initializer.rb
298
- - lib/generators/ahoy/stores/templates/active_record_visit_model.rb
299
- - lib/generators/ahoy/stores/templates/active_record_visits_migration.rb
300
- - lib/generators/ahoy/stores/templates/bunny_initializer.rb
301
- - lib/generators/ahoy/stores/templates/custom_initializer.rb
302
- - lib/generators/ahoy/stores/templates/fluentd_initializer.rb
303
- - lib/generators/ahoy/stores/templates/kafka_initializer.rb
304
- - lib/generators/ahoy/stores/templates/kinesis_firehose_initializer.rb
305
- - lib/generators/ahoy/stores/templates/log_initializer.rb
306
- - lib/generators/ahoy/stores/templates/mongoid_event_model.rb
307
- - lib/generators/ahoy/stores/templates/mongoid_initializer.rb
308
- - lib/generators/ahoy/stores/templates/mongoid_visit_model.rb
309
- - test/properties/mysql_json_test.rb
310
- - test/properties/mysql_text_test.rb
311
- - test/properties/postgresql_hstore_test.rb
312
- - test/properties/postgresql_json_test.rb
313
- - test/properties/postgresql_jsonb_test.rb
314
- - test/properties/postgresql_text_test.rb
315
- - test/test_helper.rb
316
- - test/visit_properties_test.rb
225
+ - lib/generators/ahoy/activerecord_generator.rb
226
+ - lib/generators/ahoy/base_generator.rb
227
+ - lib/generators/ahoy/install_generator.rb
228
+ - lib/generators/ahoy/mongoid_generator.rb
229
+ - lib/generators/ahoy/templates/active_record_event_model.rb.tt
230
+ - lib/generators/ahoy/templates/active_record_migration.rb.tt
231
+ - lib/generators/ahoy/templates/active_record_visit_model.rb.tt
232
+ - lib/generators/ahoy/templates/base_store_initializer.rb.tt
233
+ - lib/generators/ahoy/templates/database_store_initializer.rb.tt
234
+ - lib/generators/ahoy/templates/mongoid_event_model.rb.tt
235
+ - lib/generators/ahoy/templates/mongoid_visit_model.rb.tt
317
236
  - vendor/assets/javascripts/ahoy.js
318
237
  homepage: https://github.com/ankane/ahoy
319
238
  licenses:
@@ -327,24 +246,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
246
  requirements:
328
247
  - - ">="
329
248
  - !ruby/object:Gem::Version
330
- version: '0'
249
+ version: '2.4'
331
250
  required_rubygems_version: !ruby/object:Gem::Requirement
332
251
  requirements:
333
252
  - - ">="
334
253
  - !ruby/object:Gem::Version
335
254
  version: '0'
336
255
  requirements: []
337
- rubyforge_project:
338
- rubygems_version: 2.5.1
256
+ rubygems_version: 3.0.3
339
257
  signing_key:
340
258
  specification_version: 4
341
- summary: Simple, powerful visit tracking for Rails
342
- test_files:
343
- - test/properties/mysql_json_test.rb
344
- - test/properties/mysql_text_test.rb
345
- - test/properties/postgresql_hstore_test.rb
346
- - test/properties/postgresql_json_test.rb
347
- - test/properties/postgresql_jsonb_test.rb
348
- - test/properties/postgresql_text_test.rb
349
- - test/test_helper.rb
350
- - test/visit_properties_test.rb
259
+ summary: Simple, powerful analytics for Rails
260
+ test_files: []
data/.gitignore DELETED
@@ -1,17 +0,0 @@
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
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in ahoy.gemspec
4
- gemspec
5
-
6
- gem "rails", "~> 5.0.0.rc1"
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- task default: :test
5
- Rake::TestTask.new do |t|
6
- t.libs << "test"
7
- t.pattern = "test/**/*_test.rb"
8
- end
data/ahoy_matey.gemspec DELETED
@@ -1,38 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "ahoy/version"
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "ahoy_matey"
8
- spec.version = Ahoy::VERSION
9
- spec.authors = ["Andrew Kane"]
10
- spec.email = ["andrew@chartkick.com"]
11
- spec.summary = "Simple, powerful visit tracking for Rails"
12
- spec.description = "Simple, powerful visit tracking for Rails"
13
- spec.homepage = "https://github.com/ankane/ahoy"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_dependency "railties"
22
- spec.add_dependency "addressable"
23
- spec.add_dependency "browser", "~> 2.0"
24
- spec.add_dependency "geocoder"
25
- spec.add_dependency "referer-parser", ">= 0.3.0"
26
- spec.add_dependency "user_agent_parser"
27
- spec.add_dependency "request_store"
28
- spec.add_dependency "uuidtools"
29
- spec.add_dependency "safely_block", ">= 0.1.1"
30
- spec.add_dependency "rack-attack", "< 6"
31
-
32
- spec.add_development_dependency "bundler", "~> 1.5"
33
- spec.add_development_dependency "rake"
34
- spec.add_development_dependency "minitest"
35
- spec.add_development_dependency "activerecord"
36
- spec.add_development_dependency "pg"
37
- spec.add_development_dependency "mysql2"
38
- end
@@ -1,49 +0,0 @@
1
- module Ahoy
2
- module Deckhands
3
- class LocationDeckhand
4
- def initialize(ip)
5
- @ip = ip
6
- end
7
-
8
- def country
9
- location.try(:country).presence
10
- end
11
-
12
- def region
13
- location.try(:state).presence
14
- end
15
-
16
- def postal_code
17
- location.try(:postal_code).presence
18
- end
19
-
20
- def city
21
- location.try(:city).presence
22
- end
23
-
24
- def latitude
25
- location.try(:latitude).presence
26
- end
27
-
28
- def longitude
29
- location.try(:longitude).presence
30
- end
31
-
32
- protected
33
-
34
- def location
35
- unless @checked
36
- @location =
37
- begin
38
- Geocoder.search(@ip).first
39
- rescue => e
40
- $stderr.puts e.message
41
- nil
42
- end
43
- @checked = true
44
- end
45
- @location
46
- end
47
- end
48
- end
49
- end