command_service_object 1.2.1 → 1.3.0

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: 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