gdatastore_mapper 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -2
  3. data/lib/gdatastore_mapper/associations.rb +9 -0
  4. data/lib/gdatastore_mapper/persistence.rb +27 -2
  5. data/lib/gdatastore_mapper/relation.rb +5 -0
  6. data/lib/gdatastore_mapper/scoping.rb +0 -1
  7. data/lib/gdatastore_mapper/version.rb +1 -1
  8. data/rails_example/.gitignore +17 -0
  9. data/rails_example/Gemfile +33 -0
  10. data/rails_example/Gemfile.lock +327 -0
  11. data/rails_example/README.md +24 -0
  12. data/rails_example/Rakefile +6 -0
  13. data/rails_example/app/assets/config/manifest.js +3 -0
  14. data/rails_example/app/assets/images/.keep +0 -0
  15. data/rails_example/app/assets/javascripts/application.js +16 -0
  16. data/rails_example/app/assets/javascripts/authors.coffee +3 -0
  17. data/rails_example/app/assets/javascripts/cable.js +13 -0
  18. data/rails_example/app/assets/javascripts/channels/.keep +0 -0
  19. data/rails_example/app/assets/stylesheets/application.css +15 -0
  20. data/rails_example/app/assets/stylesheets/authors.scss +3 -0
  21. data/rails_example/app/controllers/application_controller.rb +3 -0
  22. data/rails_example/app/controllers/authors_controller.rb +49 -0
  23. data/rails_example/app/controllers/books_controller.rb +60 -0
  24. data/rails_example/app/controllers/concerns/.keep +0 -0
  25. data/rails_example/app/models/author.rb +15 -0
  26. data/rails_example/app/models/book.rb +9 -0
  27. data/rails_example/app/views/authors/_form.html.erb +17 -0
  28. data/rails_example/app/views/authors/edit.html.erb +1 -0
  29. data/rails_example/app/views/authors/index.html.erb +22 -0
  30. data/rails_example/app/views/authors/new.html.erb +1 -0
  31. data/rails_example/app/views/books/_form.html.erb +21 -0
  32. data/rails_example/app/views/books/_update_form.html.erb +21 -0
  33. data/rails_example/app/views/books/edit.html.erb +1 -0
  34. data/rails_example/app/views/books/index.html.erb +45 -0
  35. data/rails_example/app/views/books/new.html.erb +1 -0
  36. data/rails_example/app/views/books/show.html.erb +29 -0
  37. data/rails_example/app/views/layouts/application.html.erb +28 -0
  38. data/rails_example/bin/bundle +3 -0
  39. data/rails_example/bin/rails +9 -0
  40. data/rails_example/bin/rake +9 -0
  41. data/rails_example/bin/setup +34 -0
  42. data/rails_example/bin/spring +17 -0
  43. data/rails_example/bin/update +29 -0
  44. data/rails_example/config/application.rb +25 -0
  45. data/rails_example/config/boot.rb +3 -0
  46. data/rails_example/config/cable.yml +9 -0
  47. data/rails_example/config/database.yml +8 -0
  48. data/rails_example/config/environment.rb +5 -0
  49. data/rails_example/config/environments/development.rb +51 -0
  50. data/rails_example/config/environments/production.rb +83 -0
  51. data/rails_example/config/environments/test.rb +42 -0
  52. data/rails_example/config/initializers/application_controller_renderer.rb +6 -0
  53. data/rails_example/config/initializers/assets.rb +11 -0
  54. data/rails_example/config/initializers/backtrace_silencers.rb +7 -0
  55. data/rails_example/config/initializers/cookies_serializer.rb +5 -0
  56. data/rails_example/config/initializers/filter_parameter_logging.rb +4 -0
  57. data/rails_example/config/initializers/inflections.rb +16 -0
  58. data/rails_example/config/initializers/mime_types.rb +4 -0
  59. data/rails_example/config/initializers/new_framework_defaults.rb +21 -0
  60. data/rails_example/config/initializers/session_store.rb +3 -0
  61. data/rails_example/config/initializers/wrap_parameters.rb +9 -0
  62. data/rails_example/config/locales/en.yml +23 -0
  63. data/rails_example/config/puma.rb +47 -0
  64. data/rails_example/config/routes.rb +7 -0
  65. data/rails_example/config/secrets.yml +22 -0
  66. data/rails_example/config/spring.rb +6 -0
  67. data/rails_example/config.ru +5 -0
  68. data/rails_example/db/seeds.rb +7 -0
  69. data/rails_example/lib/assets/.keep +0 -0
  70. data/rails_example/lib/tasks/.keep +0 -0
  71. data/rails_example/public/404.html +67 -0
  72. data/rails_example/public/422.html +67 -0
  73. data/rails_example/public/500.html +66 -0
  74. data/rails_example/public/apple-touch-icon-precomposed.png +0 -0
  75. data/rails_example/public/apple-touch-icon.png +0 -0
  76. data/rails_example/public/favicon.ico +0 -0
  77. data/rails_example/public/robots.txt +5 -0
  78. metadata +72 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '08925d9b889ae9123bcfe862754d0899f5dfda6d'
4
- data.tar.gz: 553c4eba288b3bfff9ce405484714a579f2439a1
3
+ metadata.gz: db5faa3582a78e8bec1ae7f512679a6d1de51d0d
4
+ data.tar.gz: cc263821fbf1d347fb3c99b18ddfb773d7c14fae
5
5
  SHA512:
6
- metadata.gz: 24e75353e1f4a497866994f9efd52bce06b77f53753addb2f240185977ecc8ee550f79400bf2025882341664adc1aacb63effc5a9c5111872fca51be1cc77924
7
- data.tar.gz: 2872a7308d7aa365c371891ceaeefc77ea4d336b463da479fba01378fd2b80fcbbebb37077c9fee5302f41faa074e0a71987a780e4fcb7a1c032b440592539d8
6
+ metadata.gz: a9f83649f684855ab56c328416dde0831463afc7dfd85e0e7469f4c1e2f5a2e625f983ec2158acf5c7a29f5e221723485b061b3cf65c4757d00cb228b5f0c47c
7
+ data.tar.gz: 1bf9a85f642d1dc1301027d0ec7ce786d1d6b2badbb5005053e11750a382d8a9231fba8efcf8ca326534321aa720ecca574365616f8de4c2f78acf34207339df
data/README.md CHANGED
@@ -3,11 +3,36 @@
3
3
  GdatastoreMapper is a mapper framework for Google Cloud Datastore in Ruby / Ruby on Rails.
4
4
  Once you install GdatastoreMapper you can use Google Cloud Datastore like ActiveRecord.
5
5
 
6
+ ## Table of Contents
7
+ - [Requirements](#requirements)
8
+ - [Installation](#installation)
9
+ - [Configuration](#configuration)
10
+ - [Model Setting](#model-setting)
11
+ - [Persistence Methods](#persistence-methods)
12
+ - [Scoping Methods](#scoping-methods)
13
+ - [Timestamp](#timestamp)
14
+ - [Associations](#associations)
15
+ - [One to Many](#one-to-many)
16
+ - [Development](#development)
17
+
18
+ ## Requirements
19
+
20
+ GdatastoreMapper requires Rails version >= 4.2 (of course it's working for Rails 5)
21
+
22
+ google-cloud >= 0.27
23
+
24
+
6
25
  ## Installation
7
26
 
27
+ Execute rails new with --skip-active-record
28
+ ```
29
+ $ rails new your_project --skip-active-record
30
+ ```
31
+
8
32
  Add this line to your application's Gemfile:
9
33
 
10
34
  ```ruby
35
+ gem 'google-cloud'
11
36
  gem 'gdatastore_mapper'
12
37
  ```
13
38
 
@@ -40,14 +65,14 @@ test:
40
65
  emulator_host: localhost:8444
41
66
  ```
42
67
 
43
- ## Usage
68
+ ## Model Setting
44
69
 
45
70
  Only 2 things you need to do.
46
71
 
47
72
  1. To include GdatastoreMapper
48
73
  2. To set attr_accessor as column
49
74
 
50
- That's it!
75
+ That's it! No need to db:migrate.
51
76
 
52
77
  ```ruby
53
78
  class Book
@@ -122,6 +147,8 @@ All records have created_at and updated_at. They will be updated automatically.
122
147
 
123
148
  ## Associations
124
149
 
150
+ ### One to Many
151
+
125
152
  example of one to many relationship
126
153
 
127
154
  ```ruby
@@ -27,6 +27,11 @@ module GdatastoreMapper
27
27
  end
28
28
 
29
29
  def belongs_to model
30
+ if @belongs_to_models.nil?
31
+ @belongs_to_models = [model.to_s]
32
+ else
33
+ @belongs_to_models << model.to_s
34
+ end
30
35
  self.class_eval("attr_accessor :#{model.to_s + '_id'}")
31
36
 
32
37
  define_method model do
@@ -36,5 +41,9 @@ module GdatastoreMapper
36
41
  end
37
42
  end
38
43
 
44
+ def belongs_to_models
45
+ @belongs_to_models
46
+ end
47
+
39
48
  end
40
49
  end
@@ -8,6 +8,7 @@ module GdatastoreMapper
8
8
  entity = to_entity
9
9
  GdatastoreMapper::Session.dataset.save(entity)
10
10
  self.id = entity.key.id
11
+ update_owner(self, :add)
11
12
  true
12
13
  end
13
14
 
@@ -19,17 +20,41 @@ module GdatastoreMapper
19
20
  end
20
21
 
21
22
  def destroy
23
+ update_owner(self, :delete)
22
24
  GdatastoreMapper::Session.dataset.delete \
23
25
  Google::Cloud::Datastore::Key.new self.class.to_s, id
24
26
  end
25
27
 
26
28
  def delete
27
- GdatastoreMapper::Session.dataset.delete \
28
- Google::Cloud::Datastore::Key.new self.class.to_s, id
29
+ destroy
29
30
  end
30
31
 
31
32
  def persisted?
32
33
  id.present?
33
34
  end
35
+
36
+ private
37
+
38
+ def update_owner belonging, flg = :add
39
+ return if self.class.belongs_to_models.nil?
40
+ belongings_id = belonging.class.to_s.pluralize.underscore + '_id'
41
+ self.class.belongs_to_models.each do |owner|
42
+ owner_record = belonging.send(owner)
43
+ existing_ids = owner_record.send(belongings_id) || []
44
+ owner_record.update(owner_attr(belongings_id, existing_ids, flg))
45
+ end
46
+ end
47
+
48
+ def owner_attr belongings_id, existing_ids, flg
49
+ owner_attr = {}
50
+ if flg == :add
51
+ existing_ids << self.id
52
+ elsif flg == :delete
53
+ existing_ids.delete(self.id)
54
+ end
55
+ owner_attr[belongings_id] = (existing_ids.uniq)
56
+ owner_attr
57
+ end
58
+
34
59
  end
35
60
  end
@@ -5,6 +5,11 @@ module GdatastoreMapper
5
5
  @association = association
6
6
  end
7
7
 
8
+ def new attributes
9
+ belonging_attr = attributes.merge(@association.owner_attributes)
10
+ @association.belonging_klass.new(belonging_attr)
11
+ end
12
+
8
13
  def create attributes
9
14
  belonging = create_belonging attributes
10
15
  update_owner belonging
@@ -10,7 +10,6 @@ module GdatastoreMapper
10
10
  end
11
11
 
12
12
  def find id
13
- return nil unless id.is_a?(Fixnum)
14
13
  query = Google::Cloud::Datastore::Key.new self.to_s, id.to_i
15
14
  entities = GdatastoreMapper::Session.dataset.lookup query
16
15
  from_entity entities.first if entities.any?
@@ -1,3 +1,3 @@
1
1
  module GdatastoreMapper
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -0,0 +1,17 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore all logfiles and tempfiles.
11
+ /log/*
12
+ /tmp/*
13
+ !/log/.keep
14
+ !/tmp/.keep
15
+
16
+ # Ignore Byebug command history file.
17
+ .byebug_history
@@ -0,0 +1,33 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) do |repo_name|
4
+ repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
5
+ "https://github.com/#{repo_name}.git"
6
+ end
7
+
8
+ gem 'rails', '~> 5.0.2'
9
+
10
+ gem 'google-cloud'
11
+ gem 'gdatastore_mapper', path: '../../gems/gdatastore_mapper'
12
+
13
+ gem 'puma', '~> 3.0'
14
+ gem 'sass-rails', '~> 5.0'
15
+ gem 'uglifier', '>= 1.3.0'
16
+ gem 'coffee-rails', '~> 4.2'
17
+
18
+ gem 'jquery-rails'
19
+ gem 'turbolinks', '~> 5'
20
+ gem 'jbuilder', '~> 2.5'
21
+
22
+ group :development, :test do
23
+ gem 'byebug', platform: :mri
24
+ end
25
+
26
+ group :development do
27
+ gem 'web-console', '>= 3.3.0'
28
+ gem 'listen', '~> 3.0.5'
29
+ gem 'spring'
30
+ gem 'spring-watcher-listen', '~> 2.0.0'
31
+ end
32
+
33
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
@@ -0,0 +1,327 @@
1
+ PATH
2
+ remote: ../../gems/gdatastore_mapper
3
+ specs:
4
+ gdatastore_mapper (0.1.2bata)
5
+ google-cloud (~> 0.27)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (5.0.2)
11
+ actionpack (= 5.0.2)
12
+ nio4r (>= 1.2, < 3.0)
13
+ websocket-driver (~> 0.6.1)
14
+ actionmailer (5.0.2)
15
+ actionpack (= 5.0.2)
16
+ actionview (= 5.0.2)
17
+ activejob (= 5.0.2)
18
+ mail (~> 2.5, >= 2.5.4)
19
+ rails-dom-testing (~> 2.0)
20
+ actionpack (5.0.2)
21
+ actionview (= 5.0.2)
22
+ activesupport (= 5.0.2)
23
+ rack (~> 2.0)
24
+ rack-test (~> 0.6.3)
25
+ rails-dom-testing (~> 2.0)
26
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
+ actionview (5.0.2)
28
+ activesupport (= 5.0.2)
29
+ builder (~> 3.1)
30
+ erubis (~> 2.7.0)
31
+ rails-dom-testing (~> 2.0)
32
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
33
+ activejob (5.0.2)
34
+ activesupport (= 5.0.2)
35
+ globalid (>= 0.3.6)
36
+ activemodel (5.0.2)
37
+ activesupport (= 5.0.2)
38
+ activerecord (5.0.2)
39
+ activemodel (= 5.0.2)
40
+ activesupport (= 5.0.2)
41
+ arel (~> 7.0)
42
+ activesupport (5.0.2)
43
+ concurrent-ruby (~> 1.0, >= 1.0.2)
44
+ i18n (~> 0.7)
45
+ minitest (~> 5.1)
46
+ tzinfo (~> 1.1)
47
+ addressable (2.5.1)
48
+ public_suffix (~> 2.0, >= 2.0.2)
49
+ arel (7.1.4)
50
+ bindex (0.5.0)
51
+ builder (3.2.3)
52
+ byebug (9.0.6)
53
+ coderay (1.1.1)
54
+ coffee-rails (4.2.1)
55
+ coffee-script (>= 2.2.0)
56
+ railties (>= 4.0.0, < 5.2.x)
57
+ coffee-script (2.4.1)
58
+ coffee-script-source
59
+ execjs
60
+ coffee-script-source (1.12.2)
61
+ concurrent-ruby (1.0.5)
62
+ declarative (0.0.9)
63
+ declarative-option (0.1.0)
64
+ digest-crc (0.4.1)
65
+ erubis (2.7.0)
66
+ execjs (2.7.0)
67
+ faraday (0.12.0.1)
68
+ multipart-post (>= 1.2, < 3)
69
+ ffi (1.9.18)
70
+ globalid (0.3.7)
71
+ activesupport (>= 4.1.0)
72
+ google-api-client (0.11.1)
73
+ addressable (>= 2.5.1)
74
+ googleauth (~> 0.5)
75
+ httpclient (>= 2.8.1, < 3.0)
76
+ mime-types (>= 3.0)
77
+ representable (~> 3.0)
78
+ retriable (>= 2.0, < 4.0)
79
+ google-cloud (0.28.0)
80
+ google-cloud-bigquery (~> 0.26.0)
81
+ google-cloud-datastore (~> 1.0)
82
+ google-cloud-dns (~> 0.24.0)
83
+ google-cloud-error_reporting (~> 0.24.0)
84
+ google-cloud-language (~> 0.26.0)
85
+ google-cloud-logging (~> 1.0)
86
+ google-cloud-monitoring (~> 0.24.0)
87
+ google-cloud-pubsub (~> 0.24.0)
88
+ google-cloud-resource_manager (~> 0.24.0)
89
+ google-cloud-speech (~> 0.24.0)
90
+ google-cloud-storage (~> 1.0)
91
+ google-cloud-trace (~> 0.24.0)
92
+ google-cloud-translate (~> 0.23.0)
93
+ google-cloud-vision (~> 0.24.0)
94
+ google-cloud-bigquery (0.26.0)
95
+ google-api-client (~> 0.11.0)
96
+ google-cloud-core (~> 1.0)
97
+ google-cloud-core (1.0.0)
98
+ google-cloud-env (~> 1.0)
99
+ googleauth (~> 0.5.1)
100
+ google-cloud-datastore (1.0.0)
101
+ google-cloud-core (~> 1.0)
102
+ google-gax (~> 0.8.0)
103
+ google-cloud-dns (0.24.0)
104
+ google-api-client (~> 0.11.0)
105
+ google-cloud-core (~> 1.0)
106
+ zonefile (~> 1.04)
107
+ google-cloud-env (1.0.0)
108
+ faraday (~> 0.11)
109
+ google-cloud-error_reporting (0.24.0)
110
+ google-cloud-core (~> 1.0)
111
+ google-gax (~> 0.8.0)
112
+ google-cloud-language (0.26.2)
113
+ google-cloud-core (~> 1.0)
114
+ google-gax (~> 0.8.2)
115
+ google-cloud-logging (1.0.0)
116
+ google-cloud-core (~> 1.0)
117
+ google-gax (~> 0.8.0)
118
+ stackdriver-core (~> 1.0)
119
+ google-cloud-monitoring (0.24.0)
120
+ google-gax (~> 0.8.0)
121
+ google-cloud-pubsub (0.24.0)
122
+ google-cloud-core (~> 1.0)
123
+ google-gax (~> 0.8.0)
124
+ grpc-google-iam-v1 (~> 0.6.8)
125
+ google-cloud-resource_manager (0.24.1)
126
+ google-api-client (~> 0.11.0)
127
+ google-cloud-core (~> 1.0)
128
+ google-cloud-speech (0.24.0)
129
+ google-cloud-core (~> 1.0)
130
+ google-gax (~> 0.8.2)
131
+ google-cloud-storage (1.0.1)
132
+ digest-crc (~> 0.4)
133
+ google-api-client (~> 0.11.0)
134
+ google-cloud-core (~> 1.0)
135
+ google-cloud-trace (0.24.0)
136
+ google-cloud-core (~> 1.0)
137
+ google-gax (~> 0.8.0)
138
+ stackdriver-core (~> 1.0)
139
+ google-cloud-translate (0.23.0)
140
+ google-cloud-core (~> 1.0)
141
+ googleauth (~> 0.5.1)
142
+ google-cloud-vision (0.24.0)
143
+ google-cloud-core (~> 1.0)
144
+ google-gax (~> 0.8.0)
145
+ google-gax (0.8.2)
146
+ google-protobuf (~> 3.2)
147
+ googleapis-common-protos (~> 1.3.5)
148
+ googleauth (~> 0.5.1)
149
+ grpc (~> 1.0)
150
+ rly (~> 0.2.3)
151
+ google-protobuf (3.2.0.2-universal-darwin)
152
+ googleapis-common-protos (1.3.5)
153
+ google-protobuf (~> 3.2)
154
+ grpc (~> 1.0)
155
+ googleauth (0.5.1)
156
+ faraday (~> 0.9)
157
+ jwt (~> 1.4)
158
+ logging (~> 2.0)
159
+ memoist (~> 0.12)
160
+ multi_json (~> 1.11)
161
+ os (~> 0.9)
162
+ signet (~> 0.7)
163
+ grpc (1.2.2-universal-darwin)
164
+ google-protobuf (~> 3.1)
165
+ googleauth (~> 0.5.1)
166
+ grpc-google-iam-v1 (0.6.8)
167
+ googleapis-common-protos (~> 1.3.1)
168
+ googleauth (~> 0.5.1)
169
+ grpc (~> 1.0)
170
+ httpclient (2.8.3)
171
+ i18n (0.8.1)
172
+ jbuilder (2.6.3)
173
+ activesupport (>= 3.0.0, < 5.2)
174
+ multi_json (~> 1.2)
175
+ jquery-rails (4.3.1)
176
+ rails-dom-testing (>= 1, < 3)
177
+ railties (>= 4.2.0)
178
+ thor (>= 0.14, < 2.0)
179
+ jwt (1.5.6)
180
+ listen (3.0.8)
181
+ rb-fsevent (~> 0.9, >= 0.9.4)
182
+ rb-inotify (~> 0.9, >= 0.9.7)
183
+ little-plugger (1.1.4)
184
+ logging (2.2.2)
185
+ little-plugger (~> 1.1)
186
+ multi_json (~> 1.10)
187
+ loofah (2.0.3)
188
+ nokogiri (>= 1.5.9)
189
+ mail (2.6.4)
190
+ mime-types (>= 1.16, < 4)
191
+ memoist (0.15.0)
192
+ method_source (0.8.2)
193
+ mime-types (3.1)
194
+ mime-types-data (~> 3.2015)
195
+ mime-types-data (3.2016.0521)
196
+ mini_portile2 (2.1.0)
197
+ minitest (5.10.1)
198
+ multi_json (1.12.1)
199
+ multipart-post (2.0.0)
200
+ nio4r (2.0.0)
201
+ nokogiri (1.7.1)
202
+ mini_portile2 (~> 2.1.0)
203
+ os (0.9.6)
204
+ pry (0.10.4)
205
+ coderay (~> 1.1.0)
206
+ method_source (~> 0.8.1)
207
+ slop (~> 3.4)
208
+ pry-byebug (3.4.2)
209
+ byebug (~> 9.0)
210
+ pry (~> 0.10)
211
+ pry-doc (0.10.0)
212
+ pry (~> 0.9)
213
+ yard (~> 0.9)
214
+ pry-rails (0.3.6)
215
+ pry (>= 0.10.4)
216
+ public_suffix (2.0.5)
217
+ puma (3.8.2)
218
+ rack (2.0.1)
219
+ rack-test (0.6.3)
220
+ rack (>= 1.0)
221
+ rails (5.0.2)
222
+ actioncable (= 5.0.2)
223
+ actionmailer (= 5.0.2)
224
+ actionpack (= 5.0.2)
225
+ actionview (= 5.0.2)
226
+ activejob (= 5.0.2)
227
+ activemodel (= 5.0.2)
228
+ activerecord (= 5.0.2)
229
+ activesupport (= 5.0.2)
230
+ bundler (>= 1.3.0, < 2.0)
231
+ railties (= 5.0.2)
232
+ sprockets-rails (>= 2.0.0)
233
+ rails-dom-testing (2.0.2)
234
+ activesupport (>= 4.2.0, < 6.0)
235
+ nokogiri (~> 1.6)
236
+ rails-html-sanitizer (1.0.3)
237
+ loofah (~> 2.0)
238
+ railties (5.0.2)
239
+ actionpack (= 5.0.2)
240
+ activesupport (= 5.0.2)
241
+ method_source
242
+ rake (>= 0.8.7)
243
+ thor (>= 0.18.1, < 2.0)
244
+ rake (12.0.0)
245
+ rb-fsevent (0.9.8)
246
+ rb-inotify (0.9.8)
247
+ ffi (>= 0.5.0)
248
+ representable (3.0.3)
249
+ declarative (< 0.1.0)
250
+ declarative-option (< 0.2.0)
251
+ uber (< 0.2.0)
252
+ retriable (3.0.1)
253
+ rly (0.2.3)
254
+ sass (3.4.23)
255
+ sass-rails (5.0.6)
256
+ railties (>= 4.0.0, < 6)
257
+ sass (~> 3.1)
258
+ sprockets (>= 2.8, < 4.0)
259
+ sprockets-rails (>= 2.0, < 4.0)
260
+ tilt (>= 1.1, < 3)
261
+ signet (0.7.3)
262
+ addressable (~> 2.3)
263
+ faraday (~> 0.9)
264
+ jwt (~> 1.5)
265
+ multi_json (~> 1.10)
266
+ slop (3.6.0)
267
+ spring (2.0.1)
268
+ activesupport (>= 4.2)
269
+ spring-watcher-listen (2.0.1)
270
+ listen (>= 2.7, < 4.0)
271
+ spring (>= 1.2, < 3.0)
272
+ sprockets (3.7.1)
273
+ concurrent-ruby (~> 1.0)
274
+ rack (> 1, < 3)
275
+ sprockets-rails (3.2.0)
276
+ actionpack (>= 4.0)
277
+ activesupport (>= 4.0)
278
+ sprockets (>= 3.0.0)
279
+ stackdriver-core (1.0.0)
280
+ thor (0.19.4)
281
+ thread_safe (0.3.6)
282
+ tilt (2.0.7)
283
+ turbolinks (5.0.1)
284
+ turbolinks-source (~> 5)
285
+ turbolinks-source (5.0.0)
286
+ tzinfo (1.2.3)
287
+ thread_safe (~> 0.1)
288
+ uber (0.1.0)
289
+ uglifier (3.2.0)
290
+ execjs (>= 0.3.0, < 3)
291
+ web-console (3.5.0)
292
+ actionview (>= 5.0)
293
+ activemodel (>= 5.0)
294
+ bindex (>= 0.4.0)
295
+ railties (>= 5.0)
296
+ websocket-driver (0.6.5)
297
+ websocket-extensions (>= 0.1.0)
298
+ websocket-extensions (0.1.2)
299
+ yard (0.9.8)
300
+ zonefile (1.04)
301
+
302
+ PLATFORMS
303
+ ruby
304
+
305
+ DEPENDENCIES
306
+ byebug
307
+ coffee-rails (~> 4.2)
308
+ gdatastore_mapper!
309
+ google-cloud
310
+ jbuilder (~> 2.5)
311
+ jquery-rails
312
+ listen (~> 3.0.5)
313
+ pry-byebug
314
+ pry-doc
315
+ pry-rails
316
+ puma (~> 3.0)
317
+ rails (~> 5.0.2)
318
+ sass-rails (~> 5.0)
319
+ spring
320
+ spring-watcher-listen (~> 2.0.0)
321
+ turbolinks (~> 5)
322
+ tzinfo-data
323
+ uglifier (>= 1.3.0)
324
+ web-console (>= 3.3.0)
325
+
326
+ BUNDLED WITH
327
+ 1.14.6
@@ -0,0 +1,24 @@
1
+ # README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
File without changes
@@ -0,0 +1,16 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require turbolinks
16
+ //= require_tree .
@@ -0,0 +1,3 @@
1
+ # Place all the behaviors and hooks related to the matching controller here.
2
+ # All this logic will automatically be available in application.js.
3
+ # You can use CoffeeScript in this file: http://coffeescript.org/
@@ -0,0 +1,13 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the rails generate channel command.
3
+ //
4
+ //= require action_cable
5
+ //= require_self
6
+ //= require_tree ./channels
7
+
8
+ (function() {
9
+ this.App || (this.App = {});
10
+
11
+ App.cable = ActionCable.createConsumer();
12
+
13
+ }).call(this);
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,3 @@
1
+ // Place all the styles related to the authors controller here.
2
+ // They will automatically be included in application.css.
3
+ // You can use Sass (SCSS) here: http://sass-lang.com/
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery with: :exception
3
+ end