spyme 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/app/controllers/spyme/locations_controller.rb +26 -0
  5. data/config/routes.rb +7 -0
  6. data/lib/spyme/controller.rb +13 -0
  7. data/lib/spyme/engine.rb +5 -0
  8. data/lib/spyme/model.rb +34 -0
  9. data/lib/spyme/version.rb +3 -0
  10. data/lib/spyme.rb +8 -0
  11. data/lib/tasks/spyme_tasks.rake +4 -0
  12. data/test/dummy/README.rdoc +28 -0
  13. data/test/dummy/Rakefile +6 -0
  14. data/test/dummy/app/assets/javascripts/application.js +14 -0
  15. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  16. data/test/dummy/app/controllers/application_controller.rb +5 -0
  17. data/test/dummy/app/controllers/home_controller.rb +9 -0
  18. data/test/dummy/app/helpers/application_helper.rb +2 -0
  19. data/test/dummy/app/views/home/my_location.html.erb +3 -0
  20. data/test/dummy/app/views/home/start.html.erb +3 -0
  21. data/test/dummy/app/views/layouts/application.html.erb +15 -0
  22. data/test/dummy/bin/bundle +3 -0
  23. data/test/dummy/bin/rails +4 -0
  24. data/test/dummy/bin/rake +4 -0
  25. data/test/dummy/config/application.rb +23 -0
  26. data/test/dummy/config/boot.rb +5 -0
  27. data/test/dummy/config/database.yml +25 -0
  28. data/test/dummy/config/environment.rb +5 -0
  29. data/test/dummy/config/environments/development.rb +37 -0
  30. data/test/dummy/config/environments/production.rb +82 -0
  31. data/test/dummy/config/environments/test.rb +39 -0
  32. data/test/dummy/config/initializers/assets.rb +8 -0
  33. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  34. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  35. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  36. data/test/dummy/config/initializers/inflections.rb +16 -0
  37. data/test/dummy/config/initializers/mime_types.rb +4 -0
  38. data/test/dummy/config/initializers/session_store.rb +3 -0
  39. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  40. data/test/dummy/config/locales/en.yml +23 -0
  41. data/test/dummy/config/routes.rb +60 -0
  42. data/test/dummy/config/secrets.yml +22 -0
  43. data/test/dummy/config.ru +4 -0
  44. data/test/dummy/db/development.sqlite3 +0 -0
  45. data/test/dummy/db/test.sqlite3 +0 -0
  46. data/test/dummy/log/development.log +21 -0
  47. data/test/dummy/log/test.log +731 -0
  48. data/test/dummy/public/404.html +67 -0
  49. data/test/dummy/public/422.html +67 -0
  50. data/test/dummy/public/500.html +66 -0
  51. data/test/dummy/public/favicon.ico +0 -0
  52. data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  53. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  54. data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  55. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  56. data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  57. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  58. data/test/integration/spyme_test.rb +25 -0
  59. data/test/models/model_test.rb +43 -0
  60. data/test/test_helper.rb +15 -0
  61. data/vendor/assets/javascripts/spyme.js +26 -0
  62. metadata +182 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,25 @@
1
+ require 'test_helper'
2
+
3
+ class SpymeTest < ActionDispatch::IntegrationTest
4
+ def setup
5
+ @params = { location: { latitude: 64.24145, longitude: 75.35536 } }
6
+ end
7
+
8
+ test "post to spyme should return success" do
9
+ post '/spyme/locations', @params
10
+ assert_response 201
11
+ end
12
+
13
+ test "post to spyme should store coords" do
14
+ post '/spyme/locations', @params
15
+
16
+ assert_equal session[:latitude], '64.24145'
17
+ assert_equal session[:longitude], '75.35536'
18
+ end
19
+
20
+ test 'post to spyme should not throw bad request when empty' do
21
+ post '/spyme/locations', {}
22
+
23
+ assert_response 400
24
+ end
25
+ end
@@ -0,0 +1,43 @@
1
+ require 'test_helper'
2
+
3
+ class ModelTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ @location = Spyme::Model::Location.from_session(latitude: '54.34212', longitude: '32.14424')
7
+ end
8
+
9
+ test 'location should be invalid when empty latitude and longitude' do
10
+ @location = Spyme::Model::Location.new(latitude: '', longitude: '')
11
+
12
+ assert_equal @location.valid?, false
13
+ end
14
+
15
+ test 'location should be invalid when empty attributes' do
16
+ @location = Spyme::Model::Location.new
17
+
18
+ assert_equal @location.valid?, false
19
+ end
20
+
21
+ test 'location should be invalid when empty session' do
22
+ @location = Spyme::Model::Location.from_session({})
23
+
24
+ assert_equal @location.valid?, false
25
+ end
26
+
27
+ test 'initialize from session should give correct number attributes' do
28
+ assert_equal @location.latitude, 54.34212
29
+ assert_equal @location.longitude, 32.14424
30
+ end
31
+
32
+ test 'as a string should give the right query value' do
33
+ assert_equal @location.to_s, '54.34212, 32.14424'
34
+ end
35
+
36
+ test 'to_hash should give the right hash value' do
37
+ assert_equal @location.to_hash, { latitude: 54.34212, longitude: 32.14424 }
38
+ end
39
+
40
+ test 'coords should give the values in array' do
41
+ assert_equal @location.coords, [54.34212, 32.14424]
42
+ end
43
+ end
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
@@ -0,0 +1,26 @@
1
+ (function(window){
2
+ "use strict";
3
+
4
+ var $ = window.jQuery || window.Zepto || window.$;
5
+
6
+ var success = function(location) {
7
+ var latitude = location.coords.latitude;
8
+ var longitude = location.coords.longitude;
9
+
10
+ var params = {
11
+ location: {
12
+ latitude: latitude,
13
+ longitude: longitude
14
+ }
15
+ };
16
+
17
+ $.post('/spyme/locations',params).done(function(data) {
18
+ console.log(data);
19
+ });
20
+
21
+ }
22
+
23
+ if ("geolocation" in navigator) {
24
+ navigator.geolocation.getCurrentPosition(success);
25
+ }
26
+ })(window);
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spyme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Juani Villarejo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '4.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '4.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ description: With spyme you can store and access user browser geolocated position
42
+ and use it whenever you want.
43
+ email:
44
+ - contac@jonvillage.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - MIT-LICENSE
50
+ - Rakefile
51
+ - app/controllers/spyme/locations_controller.rb
52
+ - config/routes.rb
53
+ - lib/spyme.rb
54
+ - lib/spyme/controller.rb
55
+ - lib/spyme/engine.rb
56
+ - lib/spyme/model.rb
57
+ - lib/spyme/version.rb
58
+ - lib/tasks/spyme_tasks.rake
59
+ - test/dummy/README.rdoc
60
+ - test/dummy/Rakefile
61
+ - test/dummy/app/assets/javascripts/application.js
62
+ - test/dummy/app/assets/stylesheets/application.css
63
+ - test/dummy/app/controllers/application_controller.rb
64
+ - test/dummy/app/controllers/home_controller.rb
65
+ - test/dummy/app/helpers/application_helper.rb
66
+ - test/dummy/app/views/home/my_location.html.erb
67
+ - test/dummy/app/views/home/start.html.erb
68
+ - test/dummy/app/views/layouts/application.html.erb
69
+ - test/dummy/bin/bundle
70
+ - test/dummy/bin/rails
71
+ - test/dummy/bin/rake
72
+ - test/dummy/config.ru
73
+ - test/dummy/config/application.rb
74
+ - test/dummy/config/boot.rb
75
+ - test/dummy/config/database.yml
76
+ - test/dummy/config/environment.rb
77
+ - test/dummy/config/environments/development.rb
78
+ - test/dummy/config/environments/production.rb
79
+ - test/dummy/config/environments/test.rb
80
+ - test/dummy/config/initializers/assets.rb
81
+ - test/dummy/config/initializers/backtrace_silencers.rb
82
+ - test/dummy/config/initializers/cookies_serializer.rb
83
+ - test/dummy/config/initializers/filter_parameter_logging.rb
84
+ - test/dummy/config/initializers/inflections.rb
85
+ - test/dummy/config/initializers/mime_types.rb
86
+ - test/dummy/config/initializers/session_store.rb
87
+ - test/dummy/config/initializers/wrap_parameters.rb
88
+ - test/dummy/config/locales/en.yml
89
+ - test/dummy/config/routes.rb
90
+ - test/dummy/config/secrets.yml
91
+ - test/dummy/db/development.sqlite3
92
+ - test/dummy/db/test.sqlite3
93
+ - test/dummy/log/development.log
94
+ - test/dummy/log/test.log
95
+ - test/dummy/public/404.html
96
+ - test/dummy/public/422.html
97
+ - test/dummy/public/500.html
98
+ - test/dummy/public/favicon.ico
99
+ - test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
100
+ - test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
101
+ - test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
102
+ - test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
103
+ - test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
104
+ - test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
105
+ - test/integration/spyme_test.rb
106
+ - test/models/model_test.rb
107
+ - test/test_helper.rb
108
+ - vendor/assets/javascripts/spyme.js
109
+ homepage: https://github.com/jvillarejo/spyme
110
+ licenses:
111
+ - MIT
112
+ metadata: {}
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ requirements: []
128
+ rubyforge_project:
129
+ rubygems_version: 2.3.0
130
+ signing_key:
131
+ specification_version: 4
132
+ summary: A Rails plugin that tracks and store browser geolocation position
133
+ test_files:
134
+ - test/models/model_test.rb
135
+ - test/dummy/bin/rails
136
+ - test/dummy/bin/rake
137
+ - test/dummy/bin/bundle
138
+ - test/dummy/app/assets/stylesheets/application.css
139
+ - test/dummy/app/assets/javascripts/application.js
140
+ - test/dummy/app/controllers/application_controller.rb
141
+ - test/dummy/app/controllers/home_controller.rb
142
+ - test/dummy/app/helpers/application_helper.rb
143
+ - test/dummy/app/views/home/start.html.erb
144
+ - test/dummy/app/views/home/my_location.html.erb
145
+ - test/dummy/app/views/layouts/application.html.erb
146
+ - test/dummy/Rakefile
147
+ - test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
148
+ - test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
149
+ - test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
150
+ - test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
151
+ - test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
152
+ - test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
153
+ - test/dummy/config.ru
154
+ - test/dummy/public/500.html
155
+ - test/dummy/public/favicon.ico
156
+ - test/dummy/public/422.html
157
+ - test/dummy/public/404.html
158
+ - test/dummy/db/test.sqlite3
159
+ - test/dummy/db/development.sqlite3
160
+ - test/dummy/log/test.log
161
+ - test/dummy/log/development.log
162
+ - test/dummy/config/initializers/session_store.rb
163
+ - test/dummy/config/initializers/cookies_serializer.rb
164
+ - test/dummy/config/initializers/filter_parameter_logging.rb
165
+ - test/dummy/config/initializers/backtrace_silencers.rb
166
+ - test/dummy/config/initializers/wrap_parameters.rb
167
+ - test/dummy/config/initializers/inflections.rb
168
+ - test/dummy/config/initializers/mime_types.rb
169
+ - test/dummy/config/initializers/assets.rb
170
+ - test/dummy/config/routes.rb
171
+ - test/dummy/config/application.rb
172
+ - test/dummy/config/environment.rb
173
+ - test/dummy/config/locales/en.yml
174
+ - test/dummy/config/environments/test.rb
175
+ - test/dummy/config/environments/production.rb
176
+ - test/dummy/config/environments/development.rb
177
+ - test/dummy/config/database.yml
178
+ - test/dummy/config/secrets.yml
179
+ - test/dummy/config/boot.rb
180
+ - test/dummy/README.rdoc
181
+ - test/test_helper.rb
182
+ - test/integration/spyme_test.rb