command_service_object 0.5.8 → 0.5.9

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: fe7db23a69197d30e9f10dc190d0239a023a75b156f4ede2bdb62be42ed917b4
4
- data.tar.gz: 6cccf8eafc4a2e9cb230a3a57bb7dee0d3ee2a43375c567f7d1ea322f3ecde42
3
+ metadata.gz: a606b537ff9e5fa48d83684b557cd77246678d2630651427df83249fd269e80c
4
+ data.tar.gz: f71943649f80df509d2b30bb4dc8ba71a6a5a8b8cac7b27be6ddb8262bdfd5e1
5
5
  SHA512:
6
- metadata.gz: 8b8504aab2d3204ffcad64b99c56f4c2a2526d010358b1d2c9144102d46170dd5f8ca4525c2795b74308e2b8510927858e529c60bcdf3ee0bccf77fe14ada7e8
7
- data.tar.gz: 674bdc35af0bd123b809b4c758fe28db742b9ed8a5004f5493925e139fcb147ebb19b6d6738637dd666d451d911e3b8dff0170631763e923136c0b5e2910b5ab
6
+ metadata.gz: e7e1a379d4ede3ea8588d563f2e8eee63f5988f39271c4acf3177db9bbd294a13b2d8a0600ec6c4ecb424197018a38c4d9424657ed7784fc147050273636432d
7
+ data.tar.gz: c5529f024888239ad4431c1cfd6ae212fe0b14d46859bffa92953468d6e8a7e73ebb2316a9732d44b27735d593feaccd811a76179f00d6ffff58a0746d7aa75d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- command_service_object (0.5.8)
4
+ command_service_object (0.5.9)
5
5
  virtus (~> 1.0, >= 1.0.5)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -56,17 +56,15 @@ app/services/
56
56
  │   └── usecases
57
57
  │   ├── login.rb
58
58
  │   ├── login.rb
59
- ├── getters
60
- │   └── setters
59
+    └── micros
61
60
  │   └── user_profile_image.rb
62
61
  ├── case_base.rb
63
62
  └── service_result.rb
64
63
  ```
65
64
 
66
- ### Generate setters and getters ex:
65
+ ### Generate micros ex:
67
66
 
68
- $ rails g service:setter auth user_profile_image
69
- $ rails g service:getter auth user_balance
67
+ $ rails g service:micro auth user_profile_image
70
68
 
71
69
  then you can edit command params
72
70
  > you can read [Virtus gem docs](https://github.com/solnic/virtus) for more info.
@@ -97,8 +95,7 @@ and then add your business logic
97
95
  module AuthService::Usecases
98
96
  class Login < CaseBase
99
97
  include CommandServiceObject::Hooks
100
- setters :user_profile_image
101
- getters :user_balance
98
+ micros :user_profile_image
102
99
  #
103
100
  # Your business logic goes here, keep [call] method clean by using private
104
101
  # methods for Business logic.
@@ -9,22 +9,21 @@ module CommandServiceObject
9
9
 
10
10
  define_method :new do |command|
11
11
  _new(command).tap do |instance|
12
- instance.send(:setup_setters, _setters)
13
- instance.send(:setup_getters, _getters)
12
+ instance.send(:setup_micros, _micros)
14
13
  end
15
14
  end
16
15
  end
17
16
  end
18
17
 
19
18
  module InstanceMethods
20
- attr_accessor :_called_setters
19
+ attr_accessor :_called_micros
21
20
 
22
- def _called_setters
23
- @_called_setters ||= []
21
+ def _called_micros
22
+ @_called_micros ||= []
24
23
  end
25
24
 
26
- def rollback_setters
27
- _called_setters.reverse_each(&:rollback)
25
+ def rollback_micros
26
+ _called_micross.reverse_each(&:rollback)
28
27
  end
29
28
 
30
29
  def setup_getters(getters)
@@ -37,21 +36,21 @@ module CommandServiceObject
37
36
  end
38
37
  end
39
38
 
40
- def setup_setters(setters)
41
- setters.each do |setter|
42
- method_name = setter.name.split('::').last.underscore
39
+ def setup_micros(micros)
40
+ micros.each do |micro|
41
+ method_name = micro.name.split('::').last.underscore
43
42
 
44
- # unrollable setters
43
+ # unrollable micros
45
44
  define_singleton_method("#{method_name}!") do |payload|
46
- setter.new(payload).call
45
+ micro.new(payload).call
47
46
  end
48
47
 
49
- # rollable setters
48
+ # rollable micros
50
49
  define_singleton_method(method_name) do |payload|
51
- obj = setter.new(payload)
50
+ obj = micro.new(payload)
52
51
  obj.call
53
52
 
54
- _called_setters << obj
53
+ _called_micros << obj
55
54
  obj
56
55
  end
57
56
  end
@@ -59,31 +58,18 @@ module CommandServiceObject
59
58
  end
60
59
 
61
60
  module ClassMethods
62
- cattr_accessor :_getters, :_setters
61
+ cattr_accessor :_micros
63
62
 
64
- def _setters
65
- @_setters ||= Set.new([])
63
+ def _micros
64
+ @_micros ||= Set.new([])
66
65
  end
67
66
 
68
- def _getters
69
- @_getters ||= Set.new([])
70
- end
71
-
72
- def setters(*names)
73
- service = to_s.split('::').first
74
-
75
- names.each do |name|
76
- obj = "#{service}/Usecases/Setters/#{name}".camelize.constantize
77
- _setters.add(obj)
78
- end
79
- end
80
-
81
- def getters(*names)
67
+ def micros(*names)
82
68
  service = to_s.split('::').first
83
69
 
84
70
  names.each do |name|
85
- obj = "#{service}/Usecases/Getters/#{name}".camelize.constantize
86
- _getters.add(obj)
71
+ obj = "#{service}/Usecases/Micros/#{name}".camelize.constantize
72
+ _micros.add(obj)
87
73
  end
88
74
  end
89
75
  end
@@ -1,3 +1,3 @@
1
1
  module CommandServiceObject
2
- VERSION = '0.5.8'.freeze
2
+ VERSION = '0.5.9'.freeze
3
3
  end
@@ -9,7 +9,7 @@ class ApplicationService
9
9
  usecase.call
10
10
  rescue StandardError => e
11
11
  if usecase
12
- usecase.rollback_setters
12
+ usecase.rollback_micros
13
13
  usecase.rollback
14
14
  end
15
15
  handle_failure(e)
@@ -2,21 +2,21 @@ require_relative '../setup/setup_generator.rb'
2
2
 
3
3
  module Service
4
4
  module Generators
5
- class SetterGenerator < Rails::Generators::NamedBase
5
+ class MicroGenerator < Rails::Generators::NamedBase
6
6
  source_root File.expand_path('templates', __dir__)
7
7
 
8
- argument :setters, type: :array, default: [], banner: 'setters setters'
8
+ argument :micros, type: :array, default: [], banner: 'micros micros'
9
9
 
10
10
  def setup
11
11
  invoke Service::Generators::SetupGenerator, [name]
12
12
  end
13
13
 
14
- def create_setters
15
- setters.each do |s|
16
- @setter = s.classify
14
+ def create_micros
15
+ micros.each do |m|
16
+ @micro = m.classify
17
17
 
18
- path = "app/services/#{service_name}/usecases/setters/#{s.underscore}.rb"
19
- template 'setter.rb.erb', path
18
+ path = "app/services/#{service_name}/usecases/micros/#{m.underscore}.rb"
19
+ template 'micro.rb.erb', path
20
20
  end
21
21
  end
22
22
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module <%= service_name.classify %>::Usecases::Setters
4
- class <%= @setter %> < CaseBase
3
+ module <%= service_name.classify %>::Usecases::Micros
4
+ class <%= @micro %> < CaseBase
5
5
  def call
6
6
  # <payload>
7
7
  end
@@ -7,8 +7,7 @@ module Service
7
7
  empty_directory("app/services/#{service_name}")
8
8
  empty_directory("app/services/#{service_name}/usecases")
9
9
  empty_directory("app/services/#{service_name}/commands")
10
- empty_directory("app/services/#{service_name}/usecases/setters")
11
- empty_directory("app/services/#{service_name}/usecases/getters")
10
+ empty_directory("app/services/#{service_name}/usecases/micros")
12
11
  end
13
12
 
14
13
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: command_service_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
4
+ version: 0.5.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adham EL-Deeb
@@ -164,9 +164,9 @@ files:
164
164
  - lib/generators/service/install/templates/services/application_service.rb
165
165
  - lib/generators/service/install/templates/services/case_base.rb
166
166
  - lib/generators/service/install/templates/services/service_result.rb
167
+ - lib/generators/service/micro/micro_generator.rb
168
+ - lib/generators/service/micro/templates/micro.rb.erb
167
169
  - lib/generators/service/service_generator.rb
168
- - lib/generators/service/setter/setter_generator.rb
169
- - lib/generators/service/setter/templates/setter.rb.erb
170
170
  - lib/generators/service/setup/setup_generator.rb
171
171
  - lib/generators/service/test/USAGE
172
172
  - lib/generators/service/test/templates/minitest.rb.erb