trailblazer-rails 2.1.0 → 2.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
  SHA1:
3
- metadata.gz: b3671c119c25e9f9f72575090dcdb7398d5c5d9f
4
- data.tar.gz: 444bdd9e5f4737406451a8d9b65f3b99ab36cacf
3
+ metadata.gz: 717fe6cda0f26fc905222fb717c55df70e2da904
4
+ data.tar.gz: 0f583866a2b10db4f33e29b57d6e37f1274c8a4a
5
5
  SHA512:
6
- metadata.gz: 39551d7596d3b73ceba16c4ca20eec455c5c1256ee91f6db0f2634ea3a3cb62dc3ef93696b2ef3a395683906b3e4d8882d32346e010f3139206024b5ae0abad0
7
- data.tar.gz: 539c4660b17247ddfcf9f190b886ef504fddc13d3a3d069492f0314aba9e70869964aa49daa62241d6dda6a5dc8109653b6813a02a6ccdb38d9af748c5d3f257
6
+ metadata.gz: 0a960ad86eace338eea9218729a4d015b962215fd5d6734287da39aaf865f6fad5df69d8d056fe8af854a188621493e1575a46eb62ef2e356a505b07b514357b
7
+ data.tar.gz: e7c4c7a8dd737c6cff8b35cd81a4d6d3891d44d6fc75f9c9238b2ac3d6af0f91ace67f00c8f530ac4ef4e47263d261b01c929643d846cb83f0c751fc00985f87
@@ -0,0 +1,9 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ Style/ClassCheck:
4
+ Exclude:
5
+ - 'lib/trailblazer/rails/cell.rb'
6
+
7
+ Metrics/AbcSize:
8
+ Exclude:
9
+ - 'lib/trailblazer/rails/controller.rb'
@@ -0,0 +1,294 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2018-04-05 15:17:59 +0800 using RuboCop version 0.52.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 9
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: Include, TreatCommentsAsGroupSeparators.
12
+ # Include: **/Gemfile, **/gems.rb
13
+ Bundler/OrderedGems:
14
+ Exclude:
15
+ - 'test/rails5.0/Gemfile'
16
+ - 'test/rails5.1/Gemfile'
17
+ - 'test/rails5.2/Gemfile'
18
+
19
+ # Offense count: 2
20
+ # Cop supports --auto-correct.
21
+ # Configuration parameters: Include, TreatCommentsAsGroupSeparators.
22
+ # Include: **/*.gemspec
23
+ Gemspec/OrderedDependencies:
24
+ Exclude:
25
+ - 'trailblazer-rails.gemspec'
26
+
27
+ # Offense count: 2
28
+ # Cop supports --auto-correct.
29
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
30
+ # SupportedStyles: outdent, indent
31
+ Layout/AccessModifierIndentation:
32
+ Exclude:
33
+ - 'lib/trailblazer/rails/controller.rb'
34
+ - 'test/rails5.0/app/controllers/params_controller.rb'
35
+
36
+ # Offense count: 5
37
+ # Cop supports --auto-correct.
38
+ Layout/EmptyLines:
39
+ Exclude:
40
+ - 'test/rails5.2/Gemfile'
41
+ - 'test/test_helper.rb'
42
+
43
+ # Offense count: 4
44
+ # Cop supports --auto-correct.
45
+ Layout/EmptyLinesAroundAccessModifier:
46
+ Exclude:
47
+ - 'lib/trailblazer/rails/controller.rb'
48
+ - 'test/rails5.0/app/controllers/params_controller.rb'
49
+ - 'test/rails5.1/app/controllers/params_controller.rb'
50
+ - 'test/rails5.2/app/controllers/params_controller.rb'
51
+
52
+ # Offense count: 9
53
+ # Cop supports --auto-correct.
54
+ # Configuration parameters: EnforcedStyle.
55
+ # SupportedStyles: empty_lines, no_empty_lines
56
+ Layout/EmptyLinesAroundBlockBody:
57
+ Exclude:
58
+ - 'test/rails5.0/config/routes.rb'
59
+ - 'test/rails5.0/db/schema.rb'
60
+ - 'test/rails5.1/config/routes.rb'
61
+ - 'test/rails5.1/db/schema.rb'
62
+ - 'test/rails5.2/config/routes.rb'
63
+ - 'test/rails5.2/db/schema.rb'
64
+
65
+ # Offense count: 3
66
+ # Cop supports --auto-correct.
67
+ # Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
68
+ Layout/ExtraSpacing:
69
+ Exclude:
70
+ - 'test/rails5.0/bin/setup'
71
+ - 'test/rails5.1/bin/setup'
72
+ - 'test/rails5.2/bin/setup'
73
+
74
+ # Offense count: 2
75
+ # Cop supports --auto-correct.
76
+ # Configuration parameters: EnforcedStyle.
77
+ # SupportedStyles: normal, rails
78
+ Layout/IndentationConsistency:
79
+ Exclude:
80
+ - 'test/rails5.1/app/controllers/params_controller.rb'
81
+ - 'test/rails5.2/app/controllers/params_controller.rb'
82
+
83
+ # Offense count: 3
84
+ # Cop supports --auto-correct.
85
+ Layout/LeadingCommentSpace:
86
+ Exclude:
87
+ - 'test/rails5.0/Gemfile'
88
+ - 'test/rails5.1/Gemfile'
89
+ - 'test/rails5.2/Gemfile'
90
+
91
+ # Offense count: 2
92
+ # Cop supports --auto-correct.
93
+ Layout/SpaceAfterColon:
94
+ Exclude:
95
+ - 'test/rails5.1/app/controllers/args_controller.rb'
96
+ - 'test/rails5.2/app/controllers/args_controller.rb'
97
+
98
+ # Offense count: 3
99
+ # Cop supports --auto-correct.
100
+ Layout/SpaceBeforeComment:
101
+ Exclude:
102
+ - 'test/rails5.0/Gemfile'
103
+ - 'test/rails5.1/Gemfile'
104
+ - 'test/rails5.2/Gemfile'
105
+
106
+ # Offense count: 6
107
+ # Cop supports --auto-correct.
108
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
109
+ # SupportedStyles: space, no_space
110
+ # SupportedStylesForEmptyBraces: space, no_space
111
+ Layout/SpaceInsideBlockBraces:
112
+ Exclude:
113
+ - 'test/rails5.0/app/concepts/params/operation/with_args.rb'
114
+ - 'test/rails5.1/app/concepts/params/operation/with_args.rb'
115
+ - 'test/rails5.2/app/concepts/params/operation/with_args.rb'
116
+
117
+ # Offense count: 51
118
+ # Cop supports --auto-correct.
119
+ Layout/SpaceInsideParens:
120
+ Exclude:
121
+ - 'test/rails5.0/app/concepts/song/operation/create.rb'
122
+ - 'test/rails5.0/app/concepts/song/operation/show.rb'
123
+ - 'test/rails5.0/app/controllers/artists_controller.rb'
124
+ - 'test/rails5.0/app/controllers/params_controller.rb'
125
+ - 'test/rails5.1/app/concepts/song/operation/create.rb'
126
+ - 'test/rails5.1/app/concepts/song/operation/show.rb'
127
+ - 'test/rails5.1/app/controllers/artists_controller.rb'
128
+ - 'test/rails5.1/app/controllers/params_controller.rb'
129
+ - 'test/rails5.2/app/concepts/song/operation/create.rb'
130
+ - 'test/rails5.2/app/concepts/song/operation/show.rb'
131
+ - 'test/rails5.2/app/controllers/artists_controller.rb'
132
+ - 'test/rails5.2/app/controllers/params_controller.rb'
133
+
134
+ # Offense count: 3
135
+ # Cop supports --auto-correct.
136
+ # Configuration parameters: EnforcedStyle.
137
+ # SupportedStyles: space, no_space
138
+ Layout/SpaceInsideStringInterpolation:
139
+ Exclude:
140
+ - 'test/rails5.0/app/concepts/params/operation/with_args.rb'
141
+ - 'test/rails5.1/app/concepts/params/operation/with_args.rb'
142
+ - 'test/rails5.2/app/concepts/params/operation/with_args.rb'
143
+
144
+ # Offense count: 1
145
+ # Cop supports --auto-correct.
146
+ Lint/DeprecatedClassMethods:
147
+ Exclude:
148
+ - 'test/test_helper.rb'
149
+
150
+ # Offense count: 1
151
+ Lint/ParenthesesAsGroupedExpression:
152
+ Exclude:
153
+ - 'test/test_helper.rb'
154
+
155
+ # Offense count: 1
156
+ # Configuration parameters: ContextCreatingMethods, MethodCreatingMethods.
157
+ Lint/UselessAccessModifier:
158
+ Exclude:
159
+ - 'lib/trailblazer/rails/cell.rb'
160
+
161
+ # Offense count: 1
162
+ # Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
163
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
164
+ Naming/FileName:
165
+ Exclude:
166
+ - 'lib/trailblazer-rails.rb'
167
+
168
+ # Offense count: 3
169
+ # Cop supports --auto-correct.
170
+ # Configuration parameters: EnforcedStyle.
171
+ # SupportedStyles: braces, no_braces, context_dependent
172
+ Style/BracesAroundHashParameters:
173
+ Exclude:
174
+ - 'test/rails5.0/app/controllers/args_controller.rb'
175
+ - 'test/rails5.1/app/controllers/args_controller.rb'
176
+ - 'test/rails5.2/app/controllers/args_controller.rb'
177
+
178
+ # Offense count: 23
179
+ # Configuration parameters: EnforcedStyle.
180
+ # SupportedStyles: nested, compact
181
+ Style/ClassAndModuleChildren:
182
+ Enabled: false
183
+
184
+ # Offense count: 1
185
+ # Cop supports --auto-correct.
186
+ Style/ColonMethodCall:
187
+ Exclude:
188
+ - 'test/test_helper.rb'
189
+
190
+ # Offense count: 10
191
+ Style/Documentation:
192
+ Exclude:
193
+ - 'spec/**/*'
194
+ - 'test/**/*'
195
+ - 'lib/trailblazer/operation/responder.rb'
196
+ - 'lib/trailblazer/rails.rb'
197
+ - 'lib/trailblazer/rails/cell.rb'
198
+ - 'lib/trailblazer/rails/controller.rb'
199
+ - 'lib/trailblazer/rails/form.rb'
200
+ - 'lib/trailblazer/rails/railtie.rb'
201
+
202
+ # Offense count: 134
203
+ # Cop supports --auto-correct.
204
+ # Configuration parameters: EnforcedStyle.
205
+ # SupportedStyles: when_needed, always, never
206
+ Style/FrozenStringLiteralComment:
207
+ Enabled: false
208
+
209
+ # Offense count: 7
210
+ # Cop supports --auto-correct.
211
+ # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
212
+ # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
213
+ Style/HashSyntax:
214
+ Exclude:
215
+ - 'Rakefile'
216
+ - 'test/rails5.0/app/controllers/args_controller.rb'
217
+ - 'test/rails5.0/app/controllers/params_controller.rb'
218
+ - 'test/rails5.1/app/controllers/args_controller.rb'
219
+ - 'test/rails5.1/app/controllers/params_controller.rb'
220
+ - 'test/rails5.2/app/controllers/args_controller.rb'
221
+ - 'test/rails5.2/app/controllers/params_controller.rb'
222
+
223
+ # Offense count: 2
224
+ # Cop supports --auto-correct.
225
+ # Configuration parameters: EnforcedStyle.
226
+ # SupportedStyles: line_count_dependent, lambda, literal
227
+ Style/Lambda:
228
+ Exclude:
229
+ - 'lib/trailblazer/rails/railtie.rb'
230
+
231
+ # Offense count: 6
232
+ # Cop supports --auto-correct.
233
+ # Configuration parameters: .
234
+ # SupportedStyles: call, braces
235
+ Style/LambdaCall:
236
+ EnforcedStyle: braces
237
+
238
+ # Offense count: 1
239
+ # Cop supports --auto-correct.
240
+ Style/MutableConstant:
241
+ Exclude:
242
+ - 'lib/trailblazer/rails/version.rb'
243
+
244
+ # Offense count: 3
245
+ # Cop supports --auto-correct.
246
+ # Configuration parameters: Strict.
247
+ Style/NumericLiterals:
248
+ MinDigits: 15
249
+
250
+ # Offense count: 10
251
+ # Cop supports --auto-correct.
252
+ # Configuration parameters: PreferredDelimiters.
253
+ Style/PercentLiteralDelimiters:
254
+ Exclude:
255
+ - 'test/rails5.0/app/concepts/params/operation/with_args.rb'
256
+ - 'test/rails5.0/test/integration/artists_controller_test.rb'
257
+ - 'test/rails5.1/app/concepts/params/operation/with_args.rb'
258
+ - 'test/rails5.1/test/integration/artists_controller_test.rb'
259
+ - 'test/rails5.2/app/concepts/params/operation/with_args.rb'
260
+ - 'test/rails5.2/test/integration/artists_controller_test.rb'
261
+ - 'trailblazer-rails.gemspec'
262
+
263
+ # Offense count: 2
264
+ # Cop supports --auto-correct.
265
+ Style/RedundantSelf:
266
+ Exclude:
267
+ - 'lib/trailblazer/rails/controller.rb'
268
+
269
+ # Offense count: 279
270
+ # Cop supports --auto-correct.
271
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
272
+ # SupportedStyles: single_quotes, double_quotes
273
+ Style/StringLiterals:
274
+ Enabled: false
275
+
276
+ # Offense count: 1
277
+ # Cop supports --auto-correct.
278
+ # Configuration parameters: IgnoredMethods.
279
+ # IgnoredMethods: respond_to, define_method
280
+ Style/SymbolProc:
281
+ Exclude:
282
+ - 'lib/trailblazer/rails/railtie.rb'
283
+
284
+ # Offense count: 1
285
+ # Cop supports --auto-correct.
286
+ Style/UnneededPercentQ:
287
+ Exclude:
288
+ - 'trailblazer-rails.gemspec'
289
+
290
+ # Offense count: 66
291
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
292
+ # URISchemes: http, https
293
+ Metrics/LineLength:
294
+ Max: 127
data/CHANGES.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 2.1.1
2
+
3
+ * Fixed issue for rails 5.2rc2 when loading model's files
4
+ * Rubocop introduced
5
+ * Allow enabling tracing when using `run` via `config.trailblazer.enable_tracing = true`
6
+
1
7
  # 2.1.0
2
8
 
3
9
  * Drop deprecated syntax for controller `run`
data/README.md CHANGED
@@ -28,6 +28,11 @@ gem 'trailblazer-rails'
28
28
 
29
29
  Note that the 2.x version only runs with TRB >= 2.1.0.
30
30
 
31
+ ## Setting flags
32
+
33
+ * `config.trailblazer.use_loader = false` to disable Trailblazer loader (default TRUE)
34
+ * `config.trailblazer.enable_tracing = true` to enable tracing when using `run` (default FALSE)
35
+
31
36
  ## License
32
37
 
33
38
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -2,7 +2,7 @@ module Trailblazer::Rails::Controller::Cell
2
2
  private
3
3
 
4
4
  module Render
5
- def render(cell=nil, options={}, *, &block)
5
+ def render(cell = nil, options = {}, *, &block)
6
6
  return super unless cell.kind_of?(::Cell::ViewModel)
7
7
  render_cell(cell, options)
8
8
  end
@@ -13,7 +13,7 @@ module Trailblazer::Rails::Controller::Cell
13
13
  # render the cell.
14
14
  content = cell.()
15
15
 
16
- render( { html: content }.merge(options) )
16
+ render({ html: content }.merge(options))
17
17
  end
18
18
  end
19
19
 
@@ -1,10 +1,14 @@
1
1
  module Trailblazer::Rails
2
2
  module Controller
3
3
  def run(operation, *dependencies)
4
- result = operation.({params: _run_params(self.params) }.merge(*_run_runtime_options(*dependencies)))
4
+ result = if Rails.application.config.trailblazer.enable_tracing
5
+ _run_operation(operation, :trace, *dependencies).tap { |r| _operation_trace(r) }
6
+ else
7
+ _run_operation(operation, :call, *dependencies)
8
+ end
5
9
 
6
10
  @model = result[:model]
7
- @form = Trailblazer::Rails::Form.new( result[ "contract.default" ], @model.class )
11
+ @form = Trailblazer::Rails::Form.new(result["contract.default"], @model.class)
8
12
 
9
13
  yield(result) if result.success? && block_given?
10
14
 
@@ -19,7 +23,7 @@ module Trailblazer::Rails
19
23
  end
20
24
 
21
25
  # This is where we can inject Dry.RB containers and the like via dependencies.
22
- def _run_runtime_options(ctx={}, *dependencies)
26
+ def _run_runtime_options(ctx = {}, *dependencies)
23
27
  [_run_options(ctx), *dependencies]
24
28
  end
25
29
 
@@ -29,6 +33,17 @@ module Trailblazer::Rails
29
33
  ctx
30
34
  end
31
35
 
36
+ def _run_operation(operation, call_method, *dependencies)
37
+ operation.send(
38
+ call_method,
39
+ { params: _run_params(self.params) }.merge(*_run_runtime_options(*dependencies))
40
+ )
41
+ end
42
+
43
+ def _operation_trace(result)
44
+ puts result.wtf?
45
+ end
46
+
32
47
  module Result
33
48
  def result
34
49
  @_result
@@ -7,6 +7,7 @@ module Trailblazer
7
7
  ## Accept also an Array of controllers
8
8
  config.trailblazer.application_controller ||= 'ActionController::Base'
9
9
  config.trailblazer.use_loader ||= true
10
+ config.trailblazer.enable_tracing ||= false
10
11
 
11
12
  def self.load_concepts(app)
12
13
  # Loader.new.(insert: [ModelFile, before: Loader::AddConceptFiles]) { |file| require_dependency("#{app.root}/#{file}") }
@@ -42,7 +43,7 @@ module Trailblazer
42
43
  end
43
44
  end
44
45
 
45
- initializer "trailblazer.application_controller", before: "finisher_hook" do |app|
46
+ initializer "trailblazer.application_controller", before: "finisher_hook" do
46
47
  reloader_class.to_prepare do
47
48
  ActiveSupport.on_load(:action_controller) do |app|
48
49
  Trailblazer::Railtie.extend_application_controller!(app)
@@ -53,12 +54,12 @@ module Trailblazer
53
54
  # Prepend model file, before the concept files like operation.rb get loaded.
54
55
  ModelFile = ->(input, options) do
55
56
  model = "app/models/#{options[:name]}.rb"
56
- File.exist?(model) ? [model]+input : input
57
+ File.exist?(model) ? [model] + input : input
57
58
  end
58
59
 
59
60
  # Load all model files before any TRB files.
60
61
  AllModelFiles = ->(input, options) do
61
- Dir.glob("#{options[:root]}/app/models/**/*.rb") + input
62
+ Dir.glob("#{options[:root]}/app/models/**/*.rb").sort + input
62
63
  end
63
64
 
64
65
  private
@@ -76,7 +77,7 @@ module Trailblazer
76
77
 
77
78
  module ExtendApplicationController
78
79
  def extend_application_controller!(app)
79
- controllers = Array(::Rails.application.config.trailblazer.application_controller).map{ |x| x.to_s }
80
+ controllers = Array(::Rails.application.config.trailblazer.application_controller).map { |x| x.to_s }
80
81
  if controllers.include? app.to_s
81
82
  app.send :include, Trailblazer::Rails::Controller
82
83
  app.send :include, Trailblazer::Rails::Controller::Cell if defined?(::Cell)
@@ -3,4 +3,4 @@ require "minitest/rails/capybara" # loads Capybara, etc.
3
3
  module Trailblazer::Test
4
4
  class Integration < Capybara::Rails::TestCase
5
5
  end
6
- end
6
+ end
@@ -1,5 +1,5 @@
1
1
  module Trailblazer
2
2
  module Rails
3
- VERSION = "2.1.0"
3
+ VERSION = "2.1.1"
4
4
  end
5
5
  end
@@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 1.10"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
25
  spec.add_development_dependency "minitest"
26
-
26
+ spec.add_development_dependency "rubocop"
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trailblazer-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-01 00:00:00.000000000 Z
11
+ date: 2018-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trailblazer
@@ -106,6 +106,20 @@ dependencies:
106
106
  - - ">="
107
107
  - !ruby/object:Gem::Version
108
108
  version: '0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: rubocop
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
109
123
  description:
110
124
  email:
111
125
  - apotonick@gmail.com
@@ -114,6 +128,8 @@ extensions: []
114
128
  extra_rdoc_files: []
115
129
  files:
116
130
  - ".gitignore"
131
+ - ".rubocop.yml"
132
+ - ".rubocop_todo.yml"
117
133
  - ".ruby-version"
118
134
  - ".travis.yml"
119
135
  - CHANGES.md