command_service_object 0.5.8 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
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