rails_ops 1.0.0.beta6 → 1.0.0.beta7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/README.md +4 -0
  4. data/Rakefile +5 -6
  5. data/VERSION +1 -1
  6. data/lib/rails_ops/hookup.rb +9 -1
  7. data/lib/rails_ops/log_subscriber.rb +3 -6
  8. data/lib/rails_ops/model_mixins/virtual_has_one.rb +1 -5
  9. data/lib/rails_ops/model_mixins.rb +0 -1
  10. data/lib/rails_ops/operation/model.rb +1 -1
  11. data/lib/rails_ops/operation.rb +2 -2
  12. data/lib/rails_ops.rb +0 -3
  13. data/rails_ops.gemspec +11 -20
  14. data/test/dummy/Rakefile +6 -0
  15. data/test/dummy/app/assets/config/manifest.js +4 -0
  16. data/test/dummy/app/assets/images/.keep +0 -0
  17. data/test/dummy/app/assets/javascripts/application.js +13 -0
  18. data/test/dummy/app/assets/javascripts/cable.js +13 -0
  19. data/test/dummy/app/assets/javascripts/channels/.keep +0 -0
  20. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  21. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  22. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  23. data/test/dummy/app/controllers/application_controller.rb +3 -0
  24. data/test/dummy/app/controllers/concerns/.keep +0 -0
  25. data/test/dummy/app/helpers/application_helper.rb +2 -0
  26. data/test/dummy/app/jobs/application_job.rb +2 -0
  27. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  28. data/test/dummy/app/models/application_record.rb +3 -0
  29. data/test/dummy/app/models/concerns/.keep +0 -0
  30. data/test/dummy/app/models/group.rb +2 -0
  31. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  32. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  33. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  34. data/test/dummy/bin/bundle +3 -0
  35. data/test/dummy/bin/rails +4 -0
  36. data/test/dummy/bin/rake +4 -0
  37. data/test/dummy/bin/setup +37 -0
  38. data/test/dummy/bin/update +29 -0
  39. data/test/dummy/bin/yarn +11 -0
  40. data/test/dummy/config/application.rb +17 -0
  41. data/test/dummy/config/boot.rb +5 -0
  42. data/test/dummy/config/cable.yml +10 -0
  43. data/test/dummy/config/database.yml +14 -0
  44. data/test/dummy/config/environment.rb +5 -0
  45. data/test/dummy/config/environments/development.rb +54 -0
  46. data/test/dummy/config/environments/production.rb +91 -0
  47. data/test/dummy/config/environments/test.rb +42 -0
  48. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  49. data/test/dummy/config/initializers/assets.rb +14 -0
  50. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  51. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  52. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  53. data/test/dummy/config/initializers/inflections.rb +16 -0
  54. data/test/dummy/config/initializers/mime_types.rb +4 -0
  55. data/test/dummy/config/initializers/rails_ops.rb +4 -0
  56. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  57. data/test/dummy/config/locales/en.yml +33 -0
  58. data/test/dummy/config/puma.rb +56 -0
  59. data/test/dummy/config/routes.rb +3 -0
  60. data/test/dummy/config/secrets.yml +32 -0
  61. data/test/dummy/config/spring.rb +6 -0
  62. data/test/dummy/config.ru +5 -0
  63. data/test/dummy/db/schema.rb +9 -0
  64. data/test/dummy/lib/assets/.keep +0 -0
  65. data/test/dummy/log/.keep +0 -0
  66. data/test/dummy/package.json +5 -0
  67. data/test/dummy/public/404.html +67 -0
  68. data/test/dummy/public/422.html +67 -0
  69. data/test/dummy/public/500.html +66 -0
  70. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  71. data/test/dummy/public/apple-touch-icon.png +0 -0
  72. data/test/dummy/public/favicon.ico +0 -0
  73. data/test/dummy/tmp/.keep +0 -0
  74. data/test/test_helper.rb +44 -10
  75. data/test/unit/rails_ops/operation/model/create_test.rb +52 -0
  76. data/test/unit/rails_ops/operation/model/load_test.rb +54 -0
  77. data/test/unit/rails_ops/operation/model/update_test.rb +22 -0
  78. data/test/unit/rails_ops/operation/model_test.rb +67 -0
  79. data/test/unit/rails_ops/operation_test.rb +145 -0
  80. metadata +134 -49
  81. data/lib/rails_ops/model_mixins/protected_attributes.rb +0 -78
  82. data/test/rails_ops/operation/example_test.rb +0 -14
data/test/test_helper.rb CHANGED
@@ -1,19 +1,53 @@
1
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
- require 'active_record'
3
- require 'minitest/autorun'
4
- require 'rails_ops'
5
- require 'db/models'
1
+ require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
2
+ # ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
3
+ require 'rails/test_help'
6
4
 
7
- ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: ':memory:'
5
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
6
+ # to be shown.
7
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
8
+
9
+ require 'rails/test_unit/reporter'
10
+
11
+ Rails::TestUnitReporter.executable = 'bin/test'
12
+
13
+ # Load fixtures from the engine
14
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
15
+ ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
16
+ ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
17
+ ActiveSupport::TestCase.file_fixture_path = ActiveSupport::TestCase.fixture_path + '/files'
18
+ ActiveSupport::TestCase.fixtures :all
19
+ end
20
+
21
+ load File.dirname(__FILE__) + '/dummy/db/schema.rb'
22
+
23
+ require 'request_store'
8
24
 
9
25
  module TestHelper
10
26
  extend ActiveSupport::Concern
11
27
 
12
- module ClassMethods
13
- def setup_db
14
- load File.dirname(__FILE__) + '/db/schema.rb'
28
+ # Help test raise errors message
29
+ # https://ruby-doc.org/stdlib-2.1.5/libdoc/test/unit/rdoc/Test/Unit/Assertions.html#method-i-assert_raise
30
+ def assert_raises_with_message(exception, expected, msg = nil, &block)
31
+ case expected
32
+ when String
33
+ assert = :assert_equal
34
+ when Regexp
35
+ assert = :assert_match
36
+ else
37
+ fail TypeError, "Expected #{expected.inspect} to be a kind of String or Regexp, not #{expected.class}"
38
+ end
39
+
40
+ ex = assert_raises(exception, *msg) { yield }
41
+ msg = message(msg, '') { "Expected Exception(#{exception}) was raised, but the message doesn't match" }
42
+
43
+ if assert == :assert_equal
44
+ assert_equal(expected, ex.message, msg)
45
+ else
46
+ msg = message(msg) { "Expected #{mu_pp expected} to match #{mu_pp ex.message}" }
47
+ assert expected =~ ex.message, msg
48
+ block.binding.eval('proc{|_|$~=_}').call($LAST_MATCH_INFO)
15
49
  end
16
50
 
17
- def setup_base_data; end
51
+ return ex
18
52
  end
19
53
  end
@@ -0,0 +1,52 @@
1
+ require 'test_helper'
2
+
3
+ class RailsOps::Operation::Model::CreateTest < ActiveSupport::TestCase
4
+ include TestHelper
5
+
6
+ BASIC_OP = Class.new(RailsOps::Operation::Model::Create) do
7
+ model Group
8
+ end
9
+
10
+ def test_basic
11
+ op = BASIC_OP.run!(group: { name: 'test', color: 'red' })
12
+
13
+ assert_equal 'test', op.model.name
14
+ assert_equal 'red', op.model.color
15
+ assert op.model.persisted?
16
+ refute op.model.changed?
17
+ end
18
+
19
+ def test_model_extension
20
+ cls = Class.new(RailsOps::Operation::Model::Create) do
21
+ model Group do
22
+ validates :color, presence: true
23
+ end
24
+ end
25
+
26
+ assert cls.new.model.class < Group
27
+
28
+ assert_raises ActiveRecord::RecordInvalid do
29
+ cls.run!(group: { name: 'test' })
30
+ end
31
+ end
32
+
33
+ def test_parent_op
34
+ op = BASIC_OP.new
35
+ assert_equal op, op.model.parent_op
36
+ end
37
+
38
+ def test_always_extend_model_class
39
+ assert RailsOps::Operation::Model::Create.always_extend_model_class?
40
+ end
41
+
42
+ def test_build
43
+ op = BASIC_OP.new
44
+ op.build_model
45
+
46
+ assert op.instance_variable_get(:@model)
47
+
48
+ assert_raises_with_message RuntimeError, 'Model can only be built once.' do
49
+ op.build_model
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,54 @@
1
+ require 'test_helper'
2
+
3
+ class RailsOps::Operation::Model::LoadTest < ActiveSupport::TestCase
4
+ include TestHelper
5
+
6
+ BASIC_OP = Class.new(RailsOps::Operation::Model::Load) do
7
+ model Group
8
+ end
9
+
10
+ def test_basic
11
+ g = Group.create
12
+ op = BASIC_OP.new(id: g.id)
13
+ assert_equal g, op.model
14
+ assert_equal Group, op.model.class
15
+ end
16
+
17
+ def test_parent_op
18
+ g = Group.create
19
+ cls = Class.new(RailsOps::Operation::Model::Load) do
20
+ model Group do
21
+ # Nothing do do
22
+ end
23
+ end
24
+ op = cls.new(id: g.id)
25
+ assert_equal op, op.model.parent_op
26
+ end
27
+
28
+ def test_without_id
29
+ op = BASIC_OP.new
30
+ assert_raises_with_message RuntimeError, 'Param :id must be given.' do
31
+ op.model
32
+ end
33
+ end
34
+
35
+ def test_not_found
36
+ op = BASIC_OP.new(id: 5)
37
+ assert_raise ActiveRecord::RecordNotFound do
38
+ op.model
39
+ end
40
+ end
41
+
42
+ def test_other_model_id_field
43
+ cls = Class.new(RailsOps::Operation::Model::Load) do
44
+ model Group
45
+
46
+ def model_id_field
47
+ :name
48
+ end
49
+ end
50
+
51
+ g = Group.create(name: 'g1')
52
+ assert_equal g, cls.new(name: 'g1').model
53
+ end
54
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ class RailsOps::Operation::Model::UpdateTest < ActiveSupport::TestCase
4
+ include TestHelper
5
+
6
+ BASIC_OP = Class.new(RailsOps::Operation::Model::Update) do
7
+ model Group
8
+ end
9
+
10
+ def test_basic
11
+ g = Group.create
12
+ op = BASIC_OP.new(id: g.id)
13
+ assert_equal g.id, op.model.id
14
+ assert op.model.class < Group
15
+ end
16
+
17
+ def test_parent_op
18
+ g = Group.create
19
+ op = BASIC_OP.new(id: g.id)
20
+ assert_equal op, op.model.parent_op
21
+ end
22
+ end
@@ -0,0 +1,67 @@
1
+ require 'test_helper'
2
+
3
+ class RailsOps::Operation::ModelTest < ActiveSupport::TestCase
4
+ include TestHelper
5
+
6
+ def test_always_extend_model_class_true
7
+ cls = Class.new(RailsOps::Operation::Model) do
8
+ def self.always_extend_model_class?
9
+ true
10
+ end
11
+
12
+ model Group
13
+ end
14
+
15
+ refute_equal Group, cls.model
16
+ end
17
+
18
+ def test_always_extend_model_class_false
19
+ cls = Class.new(RailsOps::Operation::Model) do
20
+ def self.always_extend_model_class?
21
+ false
22
+ end
23
+
24
+ model Group
25
+ end
26
+
27
+ assert_equal Group, cls.model
28
+ end
29
+
30
+ def test_model_mixins
31
+ cls = Class.new(RailsOps::Operation::Model) do
32
+ def self.always_extend_model_class?
33
+ true
34
+ end
35
+
36
+ model Group
37
+ end
38
+
39
+ assert cls.model.included_modules.include?(RailsOps::ModelMixins)
40
+ end
41
+
42
+ def test_virtual_model_name
43
+ cls = Class.new(RailsOps::Operation::Model) do
44
+ model RailsOps::VirtualModel, 'Example'
45
+ end
46
+
47
+ assert_equal 'Example', cls.model.virtual_model_name
48
+ end
49
+
50
+ def test_default_model_class
51
+ cls = Class.new(RailsOps::Operation::Model) do
52
+ model do
53
+ attribute :name, :string
54
+ end
55
+ end
56
+
57
+ assert cls.model < ActiveType::Object
58
+ end
59
+
60
+ def test_no_model_class
61
+ assert_raises_with_message RuntimeError, 'No model class has been set.' do
62
+ Class.new(RailsOps::Operation::Model) do
63
+ model
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,145 @@
1
+ require 'test_helper'
2
+
3
+ class RailsOps::OperationTest < ActiveSupport::TestCase
4
+ include TestHelper
5
+
6
+ EXCEPTION = Class.new(StandardError)
7
+
8
+ BASIC_OP = Class.new(RailsOps::Operation) do
9
+ attr_reader :done
10
+
11
+ def validation_errors
12
+ super + [EXCEPTION]
13
+ end
14
+
15
+ def perform
16
+ fail osparams.exception if osparams.exception
17
+ @done = true
18
+ end
19
+ end
20
+
21
+ def test_basic_operation
22
+ op = BASIC_OP.new
23
+ op.run
24
+ assert op.done
25
+ end
26
+
27
+ def test_static_run
28
+ assert BASIC_OP.run
29
+ end
30
+
31
+ def test_static_run!
32
+ assert BASIC_OP.run!.done
33
+ end
34
+
35
+ def test_non_validation_error
36
+ assert_raises_with_message RuntimeError, 'Standard exception' do
37
+ BASIC_OP.run(exception: 'Standard exception')
38
+ end
39
+
40
+ assert_raises_with_message RuntimeError, 'Standard exception' do
41
+ BASIC_OP.run!(exception: 'Standard exception')
42
+ end
43
+ end
44
+
45
+ def test_validation_errors
46
+ assert_raises_with_message RailsOps::Exceptions::ValidationFailed, 'A message' do
47
+ BASIC_OP.run!(exception: RailsOps::Exceptions::ValidationFailed.new('A message'))
48
+ end
49
+
50
+ refute BASIC_OP.run(exception: RailsOps::Exceptions::ValidationFailed.new('A message'))
51
+ end
52
+
53
+ def test_constructor
54
+ context = RailsOps::Context.new
55
+
56
+ # new()
57
+ op = BASIC_OP.new
58
+ assert_not_equal context.object_id, op.context.object_id
59
+ assert_equal({}, op.params)
60
+
61
+ # new(nil)
62
+ op = BASIC_OP.new(nil)
63
+ assert_not_equal context.object_id, op.context.object_id
64
+ assert_equal({}, op.params)
65
+
66
+ # new(nil, nil)
67
+ op = BASIC_OP.new(nil)
68
+ assert_not_equal context.object_id, op.context.object_id
69
+ assert_equal({}, op.params)
70
+
71
+ # new(context, params)
72
+ op = BASIC_OP.new(context, key: :val)
73
+ assert_equal context.object_id, op.context.object_id
74
+ assert_equal({ key: :val }.with_indifferent_access, op.params)
75
+
76
+ # new(context)
77
+ op = BASIC_OP.new(context)
78
+ assert_equal context.object_id, op.context.object_id
79
+ assert_equal({}, op.params)
80
+
81
+ # new(params)
82
+ op = BASIC_OP.new(key: :val)
83
+ assert_not_equal context.object_id, op.context.object_id
84
+ assert_equal({ key: :val }.with_indifferent_access, op.params)
85
+
86
+ # new(params) with ActionController::Parameters
87
+ params = ActionController::Parameters.new(key: :val)
88
+ op = BASIC_OP.new(params)
89
+ assert_not_equal params.object_id, op.params.object_id
90
+ assert_equal({ key: :val }.with_indifferent_access, op.params)
91
+ end
92
+
93
+ def test_params
94
+ params = { a: 1, 'b': 1 }
95
+ op = BASIC_OP.new(params)
96
+
97
+ # ---------------------------------------------------------------
98
+ # Check if op.params and op.osparams are correctly populated
99
+ # ---------------------------------------------------------------
100
+ assert_equal params.with_indifferent_access, op.params
101
+ assert_equal op.params, op.osparams.to_h.with_indifferent_access
102
+
103
+ # ---------------------------------------------------------------
104
+ # Verify that operations work with a duplicate params hash,
105
+ # and op.params and op.osparams are not connected
106
+ # ---------------------------------------------------------------
107
+
108
+ # Change of outside params hash
109
+ params[:a] = 2
110
+ assert_equal 1, op.params[:a]
111
+ assert_equal 1, op.osparams[:a]
112
+
113
+ # Change of op.params hash
114
+ op.params[:a] = 3
115
+ assert_equal 2, params[:a]
116
+ assert_equal 1, op.osparams[:a]
117
+
118
+ # Change of op.osparams hash
119
+ op.osparams.a = 4
120
+ assert_equal 2, params[:a]
121
+ assert_equal 3, op.params[:a]
122
+
123
+ # ---------------------------------------------------------------
124
+ # Verify that the params hash is deep duplicated
125
+ # ---------------------------------------------------------------
126
+ params = { a: { foo: :bar } }
127
+ op = Class.new(RailsOps::Operation).new(params)
128
+ params[:a][:foo] = :baz
129
+
130
+ assert_equal :bar, op.params[:a][:foo]
131
+ assert_equal :bar, op.osparams.a[:foo]
132
+ end
133
+
134
+ def test_performed
135
+ op = BASIC_OP.new
136
+ refute op.performed?
137
+ op.run!
138
+ assert op.performed?
139
+ end
140
+
141
+ def test_inspect
142
+ assert_equal 'RailsOps::OperationTest::BASIC_OP ({"foo"=>:bar})',
143
+ BASIC_OP.new(foo: :bar).inspect
144
+ end
145
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta6
4
+ version: 1.0.0.beta7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-27 00:00:00.000000000 Z
11
+ date: 2017-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: yard
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rubocop
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +66,6 @@ dependencies:
80
66
  - - '='
81
67
  - !ruby/object:Gem::Version
82
68
  version: 0.47.1
83
- - !ruby/object:Gem::Dependency
84
- name: redcarpet
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: active_type
99
71
  requirement: !ruby/object:Gem::Requirement
@@ -123,21 +95,7 @@ dependencies:
123
95
  - !ruby/object:Gem::Version
124
96
  version: '0'
125
97
  - !ruby/object:Gem::Dependency
126
- name: activesupport
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: activerecord
98
+ name: rails
141
99
  requirement: !ruby/object:Gem::Requirement
142
100
  requirements:
143
101
  - - ">="
@@ -151,7 +109,7 @@ dependencies:
151
109
  - !ruby/object:Gem::Version
152
110
  version: '0'
153
111
  - !ruby/object:Gem::Dependency
154
- name: activejob
112
+ name: request_store
155
113
  requirement: !ruby/object:Gem::Requirement
156
114
  requirements:
157
115
  - - ">="
@@ -222,7 +180,6 @@ files:
222
180
  - lib/rails_ops/model_mixins.rb
223
181
  - lib/rails_ops/model_mixins/ar_extension.rb
224
182
  - lib/rails_ops/model_mixins/parent_op.rb
225
- - lib/rails_ops/model_mixins/protected_attributes.rb
226
183
  - lib/rails_ops/model_mixins/virtual_attributes.rb
227
184
  - lib/rails_ops/model_mixins/virtual_attributes/virtual_column_wrapper.rb
228
185
  - lib/rails_ops/model_mixins/virtual_has_one.rb
@@ -241,8 +198,72 @@ files:
241
198
  - rails_ops.gemspec
242
199
  - test/db/models.rb
243
200
  - test/db/schema.rb
244
- - test/rails_ops/operation/example_test.rb
201
+ - test/dummy/Rakefile
202
+ - test/dummy/app/assets/config/manifest.js
203
+ - test/dummy/app/assets/images/.keep
204
+ - test/dummy/app/assets/javascripts/application.js
205
+ - test/dummy/app/assets/javascripts/cable.js
206
+ - test/dummy/app/assets/javascripts/channels/.keep
207
+ - test/dummy/app/assets/stylesheets/application.css
208
+ - test/dummy/app/channels/application_cable/channel.rb
209
+ - test/dummy/app/channels/application_cable/connection.rb
210
+ - test/dummy/app/controllers/application_controller.rb
211
+ - test/dummy/app/controllers/concerns/.keep
212
+ - test/dummy/app/helpers/application_helper.rb
213
+ - test/dummy/app/jobs/application_job.rb
214
+ - test/dummy/app/mailers/application_mailer.rb
215
+ - test/dummy/app/models/application_record.rb
216
+ - test/dummy/app/models/concerns/.keep
217
+ - test/dummy/app/models/group.rb
218
+ - test/dummy/app/views/layouts/application.html.erb
219
+ - test/dummy/app/views/layouts/mailer.html.erb
220
+ - test/dummy/app/views/layouts/mailer.text.erb
221
+ - test/dummy/bin/bundle
222
+ - test/dummy/bin/rails
223
+ - test/dummy/bin/rake
224
+ - test/dummy/bin/setup
225
+ - test/dummy/bin/update
226
+ - test/dummy/bin/yarn
227
+ - test/dummy/config.ru
228
+ - test/dummy/config/application.rb
229
+ - test/dummy/config/boot.rb
230
+ - test/dummy/config/cable.yml
231
+ - test/dummy/config/database.yml
232
+ - test/dummy/config/environment.rb
233
+ - test/dummy/config/environments/development.rb
234
+ - test/dummy/config/environments/production.rb
235
+ - test/dummy/config/environments/test.rb
236
+ - test/dummy/config/initializers/application_controller_renderer.rb
237
+ - test/dummy/config/initializers/assets.rb
238
+ - test/dummy/config/initializers/backtrace_silencers.rb
239
+ - test/dummy/config/initializers/cookies_serializer.rb
240
+ - test/dummy/config/initializers/filter_parameter_logging.rb
241
+ - test/dummy/config/initializers/inflections.rb
242
+ - test/dummy/config/initializers/mime_types.rb
243
+ - test/dummy/config/initializers/rails_ops.rb
244
+ - test/dummy/config/initializers/wrap_parameters.rb
245
+ - test/dummy/config/locales/en.yml
246
+ - test/dummy/config/puma.rb
247
+ - test/dummy/config/routes.rb
248
+ - test/dummy/config/secrets.yml
249
+ - test/dummy/config/spring.rb
250
+ - test/dummy/db/schema.rb
251
+ - test/dummy/lib/assets/.keep
252
+ - test/dummy/log/.keep
253
+ - test/dummy/package.json
254
+ - test/dummy/public/404.html
255
+ - test/dummy/public/422.html
256
+ - test/dummy/public/500.html
257
+ - test/dummy/public/apple-touch-icon-precomposed.png
258
+ - test/dummy/public/apple-touch-icon.png
259
+ - test/dummy/public/favicon.ico
260
+ - test/dummy/tmp/.keep
245
261
  - test/test_helper.rb
262
+ - test/unit/rails_ops/operation/model/create_test.rb
263
+ - test/unit/rails_ops/operation/model/load_test.rb
264
+ - test/unit/rails_ops/operation/model/update_test.rb
265
+ - test/unit/rails_ops/operation/model_test.rb
266
+ - test/unit/rails_ops/operation_test.rb
246
267
  homepage:
247
268
  licenses: []
248
269
  metadata: {}
@@ -269,5 +290,69 @@ summary: An operations service layer for rails projects.
269
290
  test_files:
270
291
  - test/db/models.rb
271
292
  - test/db/schema.rb
272
- - test/rails_ops/operation/example_test.rb
293
+ - test/dummy/Rakefile
294
+ - test/dummy/app/assets/config/manifest.js
295
+ - test/dummy/app/assets/images/.keep
296
+ - test/dummy/app/assets/javascripts/application.js
297
+ - test/dummy/app/assets/javascripts/cable.js
298
+ - test/dummy/app/assets/javascripts/channels/.keep
299
+ - test/dummy/app/assets/stylesheets/application.css
300
+ - test/dummy/app/channels/application_cable/channel.rb
301
+ - test/dummy/app/channels/application_cable/connection.rb
302
+ - test/dummy/app/controllers/application_controller.rb
303
+ - test/dummy/app/controllers/concerns/.keep
304
+ - test/dummy/app/helpers/application_helper.rb
305
+ - test/dummy/app/jobs/application_job.rb
306
+ - test/dummy/app/mailers/application_mailer.rb
307
+ - test/dummy/app/models/application_record.rb
308
+ - test/dummy/app/models/concerns/.keep
309
+ - test/dummy/app/models/group.rb
310
+ - test/dummy/app/views/layouts/application.html.erb
311
+ - test/dummy/app/views/layouts/mailer.html.erb
312
+ - test/dummy/app/views/layouts/mailer.text.erb
313
+ - test/dummy/bin/bundle
314
+ - test/dummy/bin/rails
315
+ - test/dummy/bin/rake
316
+ - test/dummy/bin/setup
317
+ - test/dummy/bin/update
318
+ - test/dummy/bin/yarn
319
+ - test/dummy/config.ru
320
+ - test/dummy/config/application.rb
321
+ - test/dummy/config/boot.rb
322
+ - test/dummy/config/cable.yml
323
+ - test/dummy/config/database.yml
324
+ - test/dummy/config/environment.rb
325
+ - test/dummy/config/environments/development.rb
326
+ - test/dummy/config/environments/production.rb
327
+ - test/dummy/config/environments/test.rb
328
+ - test/dummy/config/initializers/application_controller_renderer.rb
329
+ - test/dummy/config/initializers/assets.rb
330
+ - test/dummy/config/initializers/backtrace_silencers.rb
331
+ - test/dummy/config/initializers/cookies_serializer.rb
332
+ - test/dummy/config/initializers/filter_parameter_logging.rb
333
+ - test/dummy/config/initializers/inflections.rb
334
+ - test/dummy/config/initializers/mime_types.rb
335
+ - test/dummy/config/initializers/rails_ops.rb
336
+ - test/dummy/config/initializers/wrap_parameters.rb
337
+ - test/dummy/config/locales/en.yml
338
+ - test/dummy/config/puma.rb
339
+ - test/dummy/config/routes.rb
340
+ - test/dummy/config/secrets.yml
341
+ - test/dummy/config/spring.rb
342
+ - test/dummy/db/schema.rb
343
+ - test/dummy/lib/assets/.keep
344
+ - test/dummy/log/.keep
345
+ - test/dummy/package.json
346
+ - test/dummy/public/404.html
347
+ - test/dummy/public/422.html
348
+ - test/dummy/public/500.html
349
+ - test/dummy/public/apple-touch-icon-precomposed.png
350
+ - test/dummy/public/apple-touch-icon.png
351
+ - test/dummy/public/favicon.ico
352
+ - test/dummy/tmp/.keep
273
353
  - test/test_helper.rb
354
+ - test/unit/rails_ops/operation/model/create_test.rb
355
+ - test/unit/rails_ops/operation/model/load_test.rb
356
+ - test/unit/rails_ops/operation/model/update_test.rb
357
+ - test/unit/rails_ops/operation/model_test.rb
358
+ - test/unit/rails_ops/operation_test.rb