stenotype 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 714f7d5fce3afe07cb1f49653fc44410ca0570086a310c8aead9b88229981f08
4
- data.tar.gz: 7f69e3448a22a9d1094dbab6a783e206ac36a5c22c1eb10db3f25180ce07d167
3
+ metadata.gz: cad5a62bd56d635becd56bf9bae4d6421879d29952473fd507ae60885ea4723e
4
+ data.tar.gz: 0b2d65ef6e1f9a84bd369d908f4133f3787156fcc5a6b46a194b4193fa735411
5
5
  SHA512:
6
- metadata.gz: 5ac72dfb39d13e86dfee3617cbef85e06dec175541af1ec681298b74c970f0ef54f4e48a434b305778bc49c219604b6d3eeab3d444a9a670a4db8873ad7a0c94
7
- data.tar.gz: 399afa50ff49b2b6b163a07345064193f3bdc18cb20719adb55b1ace92b6cafcedf3128f430df033e597836524138bce7f82134671378f113786e7e1f3948fe3
6
+ metadata.gz: c025894e106d650dcfe1bab82cf878b89a561eaae8a7eb23246a8d01a34800460a17734f55da518602d504a554b41648f6039d3174b2747d093dba8fbfbb0f26
7
+ data.tar.gz: 790e1a50a3fabff8db4c62017a556532b8acf3f1df6a330b91dfafba0e1af1701335f8463688fb8d201b75420542fd6cbba054939d33cd80e400e87b07100ed3
@@ -2,5 +2,6 @@ inherit_gem:
2
2
  spicerack-styleguide:
3
3
  - rubocop.yml
4
4
 
5
- AllCops:
6
- TargetRubyVersion: 2.6
5
+ # Disabled since ApplicationJob is only defined in a real application
6
+ Rails/ApplicationJob:
7
+ Enabled: false
@@ -0,0 +1,26 @@
1
+ # Changelog
2
+
3
+ *Release Date*: 2019/11/21
4
+
5
+ ### 0.1.1: 2019/11/25
6
+
7
+ * Moves all error into top level namespace definition file.
8
+ * Introduces a root class for all gem specific errors.
9
+ * Renames ObjectExt to an Eventable concern.
10
+ * Changes the aggressive extension of Object, forces a user to include the Eventable module only where necessary.
11
+ * Moves all rails specific logic into a Railtie, which is required only if in Rails universe.
12
+ * Adds more examples to yard documentation of the classes.
13
+ * Adds a TODO list based on the feedback.
14
+ * Grinds a huge GoogleCloud adapter method into smaller ones.
15
+ * Add two 'on/off' configuration options for Rails specific components.
16
+ * Switches to using rails specific delegate method where possible (in rails components extensions).
17
+
18
+ ### 0.1.0: The Big Bang
19
+
20
+ * Rails controller and active job adapters
21
+ * Generic event method
22
+ * Handlers for GCP Pub/Sub and STDOUT
23
+ * Initial commit
24
+
25
+
26
+
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source 'https://rubygems.org'
3
+ source "https://rubygems.org"
4
4
 
5
5
  group :development, :test do
6
6
  gem "rspice"
@@ -1,50 +1,51 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stenotype (0.1.0)
4
+ stenotype (0.1.1)
5
5
  activesupport (>= 5.0.0)
6
6
  google-cloud-pubsub (~> 1.0.0)
7
+ spicery (>= 0.19.0, < 1.0)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- actioncable (5.2.3)
12
- actionpack (= 5.2.3)
12
+ actioncable (5.2.4)
13
+ actionpack (= 5.2.4)
13
14
  nio4r (~> 2.0)
14
15
  websocket-driver (>= 0.6.1)
15
- actionmailer (5.2.3)
16
- actionpack (= 5.2.3)
17
- actionview (= 5.2.3)
18
- activejob (= 5.2.3)
16
+ actionmailer (5.2.4)
17
+ actionpack (= 5.2.4)
18
+ actionview (= 5.2.4)
19
+ activejob (= 5.2.4)
19
20
  mail (~> 2.5, >= 2.5.4)
20
21
  rails-dom-testing (~> 2.0)
21
- actionpack (5.2.3)
22
- actionview (= 5.2.3)
23
- activesupport (= 5.2.3)
22
+ actionpack (5.2.4)
23
+ actionview (= 5.2.4)
24
+ activesupport (= 5.2.4)
24
25
  rack (~> 2.0)
25
26
  rack-test (>= 0.6.3)
26
27
  rails-dom-testing (~> 2.0)
27
28
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
28
- actionview (5.2.3)
29
- activesupport (= 5.2.3)
29
+ actionview (5.2.4)
30
+ activesupport (= 5.2.4)
30
31
  builder (~> 3.1)
31
32
  erubi (~> 1.4)
32
33
  rails-dom-testing (~> 2.0)
33
34
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
34
- activejob (5.2.3)
35
- activesupport (= 5.2.3)
35
+ activejob (5.2.4)
36
+ activesupport (= 5.2.4)
36
37
  globalid (>= 0.3.6)
37
- activemodel (5.2.3)
38
- activesupport (= 5.2.3)
39
- activerecord (5.2.3)
40
- activemodel (= 5.2.3)
41
- activesupport (= 5.2.3)
38
+ activemodel (5.2.4)
39
+ activesupport (= 5.2.4)
40
+ activerecord (5.2.4)
41
+ activemodel (= 5.2.4)
42
+ activesupport (= 5.2.4)
42
43
  arel (>= 9.0)
43
- activestorage (5.2.3)
44
- actionpack (= 5.2.3)
45
- activerecord (= 5.2.3)
44
+ activestorage (5.2.4)
45
+ actionpack (= 5.2.4)
46
+ activerecord (= 5.2.4)
46
47
  marcel (~> 0.3.1)
47
- activesupport (5.2.3)
48
+ activesupport (5.2.4)
48
49
  concurrent-ruby (~> 1.0, >= 1.0.2)
49
50
  i18n (>= 0.7, < 2)
50
51
  minitest (~> 5.1)
@@ -52,17 +53,29 @@ GEM
52
53
  addressable (2.7.0)
53
54
  public_suffix (>= 2.0.2, < 5.0)
54
55
  arel (9.0.0)
56
+ around_the_world (0.19.2)
57
+ activesupport (>= 5.2.1)
55
58
  ast (2.4.0)
56
59
  builder (3.2.3)
57
60
  coderay (1.1.2)
61
+ collectible (0.19.2)
62
+ activesupport (>= 5.2.1)
63
+ short_circu_it (= 0.19.2)
64
+ tablesalt (= 0.19.2)
58
65
  concurrent-ruby (1.1.5)
66
+ conjunction (0.19.2)
67
+ activesupport (>= 5.2.1)
59
68
  crass (1.0.5)
60
69
  diff-lcs (1.3)
61
70
  docile (1.3.2)
62
71
  erubi (1.9.0)
72
+ facet (0.19.2)
73
+ activesupport (>= 5.2.1)
74
+ short_circu_it (= 0.19.2)
75
+ tablesalt (= 0.19.2)
63
76
  faker (1.9.6)
64
77
  i18n (>= 0.7)
65
- faraday (0.17.0)
78
+ faraday (0.17.1)
66
79
  multipart-post (>= 1.2, < 3)
67
80
  github-markup (3.0.4)
68
81
  globalid (0.4.2)
@@ -83,7 +96,7 @@ GEM
83
96
  googleauth (~> 0.9)
84
97
  grpc (~> 1.24)
85
98
  rly (~> 0.2.3)
86
- google-protobuf (3.10.1-universal-darwin)
99
+ google-protobuf (3.11.1)
87
100
  googleapis-common-protos (1.3.9)
88
101
  google-protobuf (~> 3.0)
89
102
  googleapis-common-protos-types (~> 1.0)
@@ -97,7 +110,7 @@ GEM
97
110
  multi_json (~> 1.11)
98
111
  os (>= 0.9, < 2.0)
99
112
  signet (~> 0.12)
100
- grpc (1.25.0-universal-darwin)
113
+ grpc (1.25.0)
101
114
  google-protobuf (~> 3.8)
102
115
  googleapis-common-protos-types (~> 1.0)
103
116
  grpc-google-iam-v1 (0.6.9)
@@ -108,26 +121,26 @@ GEM
108
121
  jaro_winkler (1.5.4)
109
122
  json (2.2.0)
110
123
  jwt (2.2.1)
111
- loofah (2.3.1)
124
+ loofah (2.4.0)
112
125
  crass (~> 1.0.2)
113
126
  nokogiri (>= 1.5.9)
114
127
  mail (2.7.1)
115
128
  mini_mime (>= 0.1.1)
116
129
  marcel (0.3.3)
117
130
  mimemagic (~> 0.3.2)
118
- memoist (0.16.0)
131
+ memoist (0.16.2)
119
132
  method_source (0.9.2)
120
133
  mimemagic (0.3.3)
121
134
  mini_mime (1.0.2)
122
135
  mini_portile2 (2.4.0)
123
- minitest (5.12.2)
136
+ minitest (5.13.0)
124
137
  multi_json (1.14.1)
125
138
  multipart-post (2.1.1)
126
139
  nio4r (2.5.2)
127
- nokogiri (1.10.4)
140
+ nokogiri (1.10.7)
128
141
  mini_portile2 (~> 2.4.0)
129
142
  os (1.0.1)
130
- parallel (1.18.0)
143
+ parallel (1.19.1)
131
144
  parser (2.6.5.0)
132
145
  ast (~> 2.4.0)
133
146
  pry (0.12.2)
@@ -137,58 +150,73 @@ GEM
137
150
  rack (2.0.7)
138
151
  rack-test (1.1.0)
139
152
  rack (>= 1.0, < 3)
140
- rails (5.2.3)
141
- actioncable (= 5.2.3)
142
- actionmailer (= 5.2.3)
143
- actionpack (= 5.2.3)
144
- actionview (= 5.2.3)
145
- activejob (= 5.2.3)
146
- activemodel (= 5.2.3)
147
- activerecord (= 5.2.3)
148
- activestorage (= 5.2.3)
149
- activesupport (= 5.2.3)
153
+ rails (5.2.4)
154
+ actioncable (= 5.2.4)
155
+ actionmailer (= 5.2.4)
156
+ actionpack (= 5.2.4)
157
+ actionview (= 5.2.4)
158
+ activejob (= 5.2.4)
159
+ activemodel (= 5.2.4)
160
+ activerecord (= 5.2.4)
161
+ activestorage (= 5.2.4)
162
+ activesupport (= 5.2.4)
150
163
  bundler (>= 1.3.0)
151
- railties (= 5.2.3)
164
+ railties (= 5.2.4)
152
165
  sprockets-rails (>= 2.0.0)
153
166
  rails-dom-testing (2.0.3)
154
167
  activesupport (>= 4.2.0)
155
168
  nokogiri (>= 1.6)
156
169
  rails-html-sanitizer (1.3.0)
157
170
  loofah (~> 2.3)
158
- railties (5.2.3)
159
- actionpack (= 5.2.3)
160
- activesupport (= 5.2.3)
171
+ railties (5.2.4)
172
+ actionpack (= 5.2.4)
173
+ activesupport (= 5.2.4)
161
174
  method_source
162
175
  rake (>= 0.8.7)
163
176
  thor (>= 0.19.0, < 2.0)
164
177
  rainbow (3.0.0)
165
178
  rake (10.5.0)
166
179
  redcarpet (3.5.0)
180
+ redis (4.1.3)
181
+ redis_hash (0.19.2)
182
+ activesupport (>= 5.2.1)
183
+ redis (>= 3.0)
184
+ tablesalt (= 0.19.2)
167
185
  rly (0.2.3)
168
- rspec (3.8.0)
169
- rspec-core (~> 3.8.0)
170
- rspec-expectations (~> 3.8.0)
171
- rspec-mocks (~> 3.8.0)
172
- rspec-core (3.8.2)
173
- rspec-support (~> 3.8.0)
174
- rspec-expectations (3.8.4)
186
+ rspec (3.9.0)
187
+ rspec-core (~> 3.9.0)
188
+ rspec-expectations (~> 3.9.0)
189
+ rspec-mocks (~> 3.9.0)
190
+ rspec-core (3.9.0)
191
+ rspec-support (~> 3.9.0)
192
+ rspec-expectations (3.9.0)
175
193
  diff-lcs (>= 1.2.0, < 2.0)
176
- rspec-support (~> 3.8.0)
177
- rspec-mocks (3.8.1)
194
+ rspec-support (~> 3.9.0)
195
+ rspec-mocks (3.9.0)
178
196
  diff-lcs (>= 1.2.0, < 2.0)
179
- rspec-support (~> 3.8.0)
180
- rspec-support (3.8.2)
181
- rspice (0.14.2)
182
- faker (~> 1.8)
197
+ rspec-support (~> 3.9.0)
198
+ rspec-support (3.9.0)
199
+ rspice (0.19.2)
200
+ faker (>= 1.8, < 2.0)
183
201
  rspec (~> 3.0)
184
- rubocop (0.76.0)
202
+ rubocop (0.74.0)
185
203
  jaro_winkler (~> 1.5.1)
186
204
  parallel (~> 1.10)
187
205
  parser (>= 2.6)
188
206
  rainbow (>= 2.2.2, < 4.0)
189
207
  ruby-progressbar (~> 1.7)
190
208
  unicode-display_width (>= 1.4.0, < 1.7)
209
+ rubocop-performance (1.4.1)
210
+ rubocop (>= 0.71.0)
211
+ rubocop-rails (2.3.0)
212
+ rack (>= 1.1)
213
+ rubocop (>= 0.72.0)
214
+ rubocop-rspec (1.35.0)
215
+ rubocop (>= 0.60.0)
191
216
  ruby-progressbar (1.10.1)
217
+ short_circu_it (0.19.2)
218
+ activesupport (>= 5.2.1)
219
+ around_the_world (= 0.19.2)
192
220
  signet (0.12.0)
193
221
  addressable (~> 2.3)
194
222
  faraday (~> 0.9)
@@ -199,6 +227,22 @@ GEM
199
227
  json (>= 1.8, < 3)
200
228
  simplecov-html (~> 0.10.0)
201
229
  simplecov-html (0.10.2)
230
+ spicerack (0.19.2)
231
+ around_the_world (= 0.19.2)
232
+ redis_hash (= 0.19.2)
233
+ short_circu_it (= 0.19.2)
234
+ tablesalt (= 0.19.2)
235
+ technologic (= 0.19.2)
236
+ spicerack-styleguide (0.19.2)
237
+ rubocop (= 0.74)
238
+ rubocop-performance (= 1.4.1)
239
+ rubocop-rails (= 2.3.0)
240
+ rubocop-rspec (= 1.35.0)
241
+ spicery (0.19.2)
242
+ collectible (= 0.19.2)
243
+ conjunction (= 0.19.2)
244
+ facet (= 0.19.2)
245
+ spicerack (= 0.19.2)
202
246
  sprockets (4.0.0)
203
247
  concurrent-ruby (~> 1.0)
204
248
  rack (> 1, < 3)
@@ -206,6 +250,13 @@ GEM
206
250
  actionpack (>= 4.0)
207
251
  activesupport (>= 4.0)
208
252
  sprockets (>= 3.0.0)
253
+ tablesalt (0.19.2)
254
+ activemodel (>= 5.2.1)
255
+ activesupport (>= 5.2.1)
256
+ technologic (0.19.2)
257
+ activesupport (>= 5.2.1)
258
+ railties (>= 5.2.1)
259
+ short_circu_it (= 0.19.2)
209
260
  thor (0.20.3)
210
261
  thread_safe (0.3.6)
211
262
  timecop (0.9.1)
@@ -229,8 +280,8 @@ DEPENDENCIES
229
280
  redcarpet (~> 3.5)
230
281
  rspec (~> 3.0)
231
282
  rspice
232
- rubocop (~> 0.76)
233
283
  simplecov (~> 0.17)
284
+ spicerack-styleguide (>= 0.19.0, < 1.0)
234
285
  stenotype!
235
286
  timecop (~> 0.9)
236
287
  yard (~> 0.9)
data/README.md CHANGED
@@ -7,7 +7,7 @@ This gem is a tool providing extensions to several rails components in order to
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'Stenotype'
10
+ gem "Stenotype"
11
11
  ```
12
12
 
13
13
  And then execute:
@@ -32,9 +32,9 @@ Stenotype.configure do |config|
32
32
 
33
33
  config.uuid_generator = SecureRandom
34
34
  config.dispatcher = Stenotype::Dispatcher.new
35
- config.gc_project_id = 'google_cloud_project_id'
36
- config.gc_credentials = 'path_to_key_json'
37
- config.gc_topic = 'google_cloud_topic'
35
+ config.gc_project_id = "google_cloud_project_id"
36
+ config.gc_credentials = "path_to_key_json"
37
+ config.gc_topic = "google_cloud_topic"
38
38
  config.gc_mode = :async # either :sync or :async
39
39
  end
40
40
  ```
@@ -150,7 +150,7 @@ class BaseClass
150
150
  attr_reader :local_state
151
151
 
152
152
  def initialize
153
- @local_state = 'some state'
153
+ @local_state = "some state"
154
154
  end
155
155
  end
156
156
 
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
data/TODO.md CHANGED
@@ -15,3 +15,21 @@
15
15
  - [ ] Figure out the params for plain ruby class context handler.
16
16
  - [ ] Consider `ContextHandlers::ActiveJob` params. How to deal with \_args? It won't necessarily respond to `#as_json`.
17
17
  - [ ] Consider a way to switch from evaluating ruby code to using plain modules extension.
18
+
19
+ Feedback TODO:
20
+
21
+ - [x] Move all exceptions into root module Stenotype. **Moved exceptions into root module**
22
+ - [x] Inherit gem specific error from a root error object specific for the gem. **All gem specific error inherit from Stenotype::Errors**
23
+ - [x] Inherit the root error from standard error. **Stenotype::Errors inherits from StandardError**
24
+ - [x] Utilize concerns and allow gem users to extend the code they need with a concern rather than aggressively extend Object. **Added an Stenotype::Emitter module instead of aggressively including it into Object**
25
+ - [x] Use Railtie to introduce rails specific logic instead of checking whether Rails is defined in the root module. **Added a Railtie, active only in Rails world**
26
+ - [?] Use delegation instead of defining tiny methods. Do not forget about Demeter's. **Rails `delegate` method is used in Rails specific extensions. Otherwise simple methods are used**
27
+ - [x] Add more examples to yard documentation, consider collecting README.md from the yard doc. **Covered most of the classes/modules with yard examples**
28
+ - [x] Enable on-off triggers in the configuration to enable/disable framework specific features. Like whether we want to extend ActiveJob or not. **Added two configuration options for currently implemented Rails extensions**
29
+ - [x] Memoization! **Not actually needed**
30
+ - [ ] Consider potential double wrapping in the meta-programming stuff. Take a look at around-the-world and consider switching to using it.
31
+ - [ ] Utilize input objects for attr_readers (what was the name of the tool?)
32
+ - [ ] Consider configurable for configuration instead of implementing custom configuration object
33
+ - [ ] Consider using collectible gem to handle collection of context handlers
34
+ - [ ] Consider naming (e.g. #as_json => #to_h), try to be more specific to not pollute the namespace or introduce any ambiguity.
35
+ - [ ] Remove freshly mentions from the gem.
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'bundler/setup'
5
- require 'stenotype'
4
+ require "bundler/setup"
5
+ require "stenotype"
6
6
 
7
7
  # You can add fixtures and/or initialization code here to make experimenting
8
8
  # with your gem easier. You can also use a different console, if you like.
@@ -11,5 +11,5 @@ require 'stenotype'
11
11
  # require "pry"
12
12
  # Pry.start
13
13
 
14
- require 'pry'
14
+ require "pry"
15
15
  Pry.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Generate the Stenotype configuration initializer.
3
+
4
+ Example:
5
+ `rails generate stenotype:initializer`
6
+
7
+ Generates:
8
+ Initializer: config/initializers/stenotype.rb