command_service_object 1.2.1 → 1.3.0

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: f6713525d2c5f070d0e1f852b675d9a3afd12470cf124c151a816894c7f5328e
4
- data.tar.gz: f76c2b168cac3af6d0fbb12cf07371168efa6b9a1c45fb2efa181cbf435af21f
3
+ metadata.gz: c58b761fce4de1db245e0074625141f0c803f50f4611b359f3a632b1d04ff05b
4
+ data.tar.gz: e01ded8f6eb6c98a867da1dadab904ac8b00f37a45e248a033b4a2d6728708e2
5
5
  SHA512:
6
- metadata.gz: 17b03115466551f6c9bdca3f16a92d9d15c25072d8f9dd401442ff3d8fa3f4ed190365c5bd47ff6d6cd2ac5c88fd2fd9dc300e7991230fe9440297360d683831
7
- data.tar.gz: 7a829d7e6b32e37f9a162a6946170bb8437657bbbe03dfbb1fce8a969330555756186fff62969e49167f760eb6cdd63d776a0c3c1e52906c9bade6fc55f2b6c5
6
+ metadata.gz: ca1fae4e751ecf83514124c0fa189ff667ce7b180c2fdc531bd2e42365f64c4c55b3b71c0665c4ce137669dc578806044677027c37192d0b554bb766827f6263
7
+ data.tar.gz: 855ac6338a4660bc2fe704c4b42e9cb9ae9b8f45375b827149f23566d23b16fe566ebbf8d994114319fef56882ad896ce2663168747892ef3acd05b633725feb
@@ -1,3 +1,3 @@
1
1
  module CommandServiceObject
2
- VERSION = '1.2.1'.freeze
2
+ VERSION = '1.3.0'.freeze
3
3
  end
@@ -25,7 +25,7 @@ module Service
25
25
 
26
26
  def create_main(m)
27
27
  path = "#{service_path}/commands/#{m.underscore}.rb"
28
- template 'command.rb.erb', path unless options.skip_command?
28
+ template 'command.rb.erb', path
29
29
  end
30
30
 
31
31
  def create_test(m)
@@ -0,0 +1,4 @@
1
+ class ValueObjectBase
2
+ include ActiveModel::Validations
3
+ include Virtus.value_object
4
+ end
@@ -13,12 +13,6 @@ module Service
13
13
  class ServiceGenerator < Rails::Generators::NamedBase
14
14
  argument :usecases, type: :array, default: [], banner: 'usecase usecase'
15
15
 
16
- # Skiping options
17
- class_option :skip_usecase, type: :boolean, default: false, aliases: '-U'
18
- class_option :skip_command, type: :boolean, default: false, aliases: '-C'
19
- class_option :skip_entity, type: :boolean, default: false, aliases: '-E'
20
- class_option :skip_test, type: :boolean, default: false, aliases: '-T'
21
-
22
16
  def install_if_not
23
17
  return if File.exist?('app/services')
24
18
 
@@ -30,14 +24,10 @@ module Service
30
24
  end
31
25
 
32
26
  def generate_usecases
33
- return if options.skip_usecase?
34
-
35
27
  invoke Service::Generators::UsecaseGenerator, [name, usecases]
36
28
  end
37
29
 
38
30
  def generate_commands
39
- return if options.skip_command?
40
-
41
31
  invoke Service::Generators::CommandGenerator, [name, usecases]
42
32
  end
43
33
 
@@ -22,7 +22,7 @@ module Service
22
22
 
23
23
  def create_main(m)
24
24
  path = "#{service_path}/usecases/#{m.underscore}.rb"
25
- template 'usecase.rb.erb', path unless options.skip_command?
25
+ template 'usecase.rb.erb', path
26
26
  end
27
27
 
28
28
  def create_test(m)
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module <%= service_name.classify %>::ValueObjects
4
+ class <%= @value_object %> < ValueObjectBase
5
+ # You can read Virtus gem doc for more info.
6
+ # https://github.com/solnic/virtus
7
+
8
+ # Attributes
9
+ # values do
10
+ # attribute :latitude, Float
11
+ # attribute :longitude, Float
12
+ # end
13
+
14
+ # Validations
15
+ # validates :REPLACE_ME, presence: true
16
+ end
17
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../setup/setup_generator.rb'
2
+ require_relative '../helper'
3
+
4
+ module Service
5
+ module Generators
6
+ class ValueObjectGenerator < Rails::Generators::NamedBase
7
+ source_root File.expand_path('templates', __dir__)
8
+
9
+ argument :value_objects, type: :array, default: [], banner: 'value_object value_object'
10
+
11
+ def call
12
+ invoke Service::Generators::SetupGenerator, [name]
13
+
14
+ value_objects.each do |u|
15
+ @value_object = u.classify
16
+ create_main(u)
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def create_main(m)
23
+ path = "#{service_path}/value_objects/#{m.underscore}.rb"
24
+ template 'value_object.rb.erb', path
25
+ end
26
+
27
+ def service_name
28
+ Service::Helper.service_name(name)
29
+ end
30
+
31
+ def service_path
32
+ Service::Helper.service_path(name)
33
+ end
34
+
35
+ def spec_path
36
+ Service::Helper.spec_path(name)
37
+ end
38
+ end
39
+ end
40
+ end
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: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adham EL-Deeb
@@ -190,6 +190,7 @@ files:
190
190
  - lib/generators/service/install/templates/services/listener_base.rb
191
191
  - lib/generators/service/install/templates/services/query_base.rb
192
192
  - lib/generators/service/install/templates/services/service_result.rb
193
+ - lib/generators/service/install/templates/services/value_object_base.rb
193
194
  - lib/generators/service/listener/listener_generator.rb
194
195
  - lib/generators/service/listener/templates/listener.rb.erb
195
196
  - lib/generators/service/micro/micro_generator.rb
@@ -204,6 +205,8 @@ files:
204
205
  - lib/generators/service/usecase/templates/usecase.rb.erb
205
206
  - lib/generators/service/usecase/templates/usecase_spec.rb.erb
206
207
  - lib/generators/service/usecase/usecase_generator.rb
208
+ - lib/generators/service/value_object/templates/value_object.rb.erb
209
+ - lib/generators/service/value_object/value_object_generator.rb
207
210
  homepage: https://github.com/adham90/command_service_object
208
211
  licenses:
209
212
  - MIT