servi-craft 0.1.1 → 0.1.2
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 +4 -4
- data/lib/generators/servi_craft/servi_craft_generator.rb +60 -0
- data/lib/generators/servi_craft/templates/create.template +33 -0
- data/lib/generators/servi_craft/templates/destroy.template +11 -0
- data/lib/generators/servi_craft/templates/info.template +15 -0
- data/lib/generators/servi_craft/templates/query.template +13 -0
- data/lib/generators/servi_craft/templates/update.template +11 -0
- data/lib/servi_craft/version.rb +1 -1
- metadata +36 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 147fcedf08785f0ecf475bbd156a210eadbd602a0b874f8aa14c59eab55f41fc
|
4
|
+
data.tar.gz: 113b02dc2b1ce00dee1eab7716ef900873e603eb32dba0e701f957727d847387
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d378b46af7514db7ce773a6d13502726b5635cdcd72a385446cceb69f5578718ae5a23318885169319fd74110ab7b033e93e648182b691cb4013ab13dced321b
|
7
|
+
data.tar.gz: 90cc7e1ade43807150ec00a214e325afb1223c18569c48a1aa5bf48e5e1a53cd64f2fe1cd9dae81a78a3c220989fe8092ec0609c55f7b5559d101538f406c5c0
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'model_ancestry/base'
|
4
|
+
# init base service Objects
|
5
|
+
class ServiCraftGenerator < Rails::Generators::NamedBase
|
6
|
+
source_root File.expand_path('templates', __dir__)
|
7
|
+
|
8
|
+
argument :attributes, type: :array, default: [], banner: 'field:type field:type'
|
9
|
+
|
10
|
+
class_option :services, type: :array, default: %w[create update destroy query]
|
11
|
+
class_option :parent_attribute, type: :string
|
12
|
+
|
13
|
+
def gen_init
|
14
|
+
assign_service_params
|
15
|
+
options.services.each { |service| init service }
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def assign_service_params
|
21
|
+
set_parent_attribute if options.parent_attribute
|
22
|
+
set_service_class_path
|
23
|
+
set_service_dir
|
24
|
+
@service_module = @service_class_path.map(&:camelcase).join('::')
|
25
|
+
set_service_model
|
26
|
+
end
|
27
|
+
|
28
|
+
def set_parent_attribute
|
29
|
+
@parent_attribute = ::ModelAncestry::Base.find_parent(attributes, options.parent_attribute)
|
30
|
+
end
|
31
|
+
|
32
|
+
def set_service_class_path
|
33
|
+
plural_name = name.pluralize
|
34
|
+
@service_class_path = plural_name.include?('/') ? plural_name.split('/') : plural_name.split('::')
|
35
|
+
@service_class_path.map!(&:underscore)
|
36
|
+
end
|
37
|
+
|
38
|
+
def set_service_dir
|
39
|
+
@service_dir = @service_class_path.join('/')
|
40
|
+
@service_dir = ['app', 'services', @service_class_path].flatten.compact.join('/')
|
41
|
+
end
|
42
|
+
|
43
|
+
def set_service_model
|
44
|
+
@service_model = @service_class_path.map(&:camelcase)
|
45
|
+
@service_model[-1] = file_name.camelcase
|
46
|
+
@service_model = "::#{@service_model.join('::')}"
|
47
|
+
end
|
48
|
+
|
49
|
+
def init(service)
|
50
|
+
type = service.underscore.split('_').first
|
51
|
+
type = 'info' unless defined_services.include? type
|
52
|
+
|
53
|
+
@service_class_name = service.camelize
|
54
|
+
template "#{type}.template", "#{@service_dir}/#{service}.rb"
|
55
|
+
end
|
56
|
+
|
57
|
+
def defined_services
|
58
|
+
%w[create update destroy query info]
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'servi_craft/create'
|
4
|
+
module <%= @service_module %>
|
5
|
+
# Service object to create a new <%= file_name.singularize.underscore %>.
|
6
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
7
|
+
# [Last modified] <%= Date.today.to_s %>
|
8
|
+
class <%= @service_class_name %> < ServiCraft::Create
|
9
|
+
# Set params to create a new <%= file_name.singularize.underscore %>.
|
10
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
11
|
+
# [Last modified] <%= Date.today.to_s %>
|
12
|
+
<% if @parent_attribute %>def initialize(<%= @parent_attribute.name %>, params)
|
13
|
+
@<%= @parent_attribute.name %> = <%= @parent_attribute.name %><% else %>def initialize(params)<% end %>
|
14
|
+
super(<%= @service_model %>, params)
|
15
|
+
end<% if @parent_attribute %>
|
16
|
+
|
17
|
+
# Set <%= @parent_attribute.name.singularize.underscore %> and create the <%= file_name.singularize.underscore %>.
|
18
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
19
|
+
# [Last modified] <%= Date.today.to_s %>
|
20
|
+
def call
|
21
|
+
super(before_assign_attributes:)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
# Set <%= @parent_attribute.name.singularize.underscore %> attribute.
|
27
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
28
|
+
# [Last modified] <%= Date.today.to_s %>
|
29
|
+
def before_assign_attributes
|
30
|
+
@record.<%= @parent_attribute.index_name %> = @<%= @parent_attribute.name %>.id
|
31
|
+
end<% end %>
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'servi_craft/destroy'
|
4
|
+
module <%= @service_module %>
|
5
|
+
# Service object to destroy the <%= file_name %>
|
6
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
7
|
+
# [Last modified] <%= Date.today.to_s %>
|
8
|
+
class <%= @service_class_name %> < ServiCraft::Destroy
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module <%= @service_module %>
|
4
|
+
# Service object to get info a record of <%= file_name.singularize.underscore %>.
|
5
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
6
|
+
# [Last modified] <%= Date.today.to_s %>
|
7
|
+
class <%= @service_class_name %>
|
8
|
+
# Set a record of <%= file_name.singularize.underscore %>.
|
9
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
10
|
+
# [Last modified] <%= Date.today.to_s %>
|
11
|
+
def initialize(<%= file_name.singularize.underscore %>)
|
12
|
+
@<%= file_name.singularize.underscore %> = <%= file_name.singularize.underscore %>
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'servi_craft/query'
|
4
|
+
module <%= @service_module %>
|
5
|
+
# Service object to query <%= file_name.pluralize.underscore %>.
|
6
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
7
|
+
# [Last modified] <%= Date.today.to_s %>
|
8
|
+
class <%= @service_class_name %> < ServiCraft::Query
|
9
|
+
def initialize(base = <%= @service_model %>.all, page: 1, rows: nil)
|
10
|
+
super(base, page:, rows:)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'servi_craft/update'
|
4
|
+
module <%= @service_module %>
|
5
|
+
# Service object to update the <%= file_name %>
|
6
|
+
# [Modified by] rails generate servi_craft <%= file_name %>
|
7
|
+
# [Last modified] <%= Date.today.to_s %>
|
8
|
+
class <%= @service_class_name %> < ServiCraft::Update
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
data/lib/servi_craft/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: servi-craft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcos Chuquicondor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: echo-craft
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: model-ancestry
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.1.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.1.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '7.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '7.0'
|
27
55
|
description: Manage Ruby Service Objects.
|
28
56
|
email:
|
29
57
|
- marcos@chuquicondor.com
|
@@ -31,6 +59,12 @@ executables: []
|
|
31
59
|
extensions: []
|
32
60
|
extra_rdoc_files: []
|
33
61
|
files:
|
62
|
+
- lib/generators/servi_craft/servi_craft_generator.rb
|
63
|
+
- lib/generators/servi_craft/templates/create.template
|
64
|
+
- lib/generators/servi_craft/templates/destroy.template
|
65
|
+
- lib/generators/servi_craft/templates/info.template
|
66
|
+
- lib/generators/servi_craft/templates/query.template
|
67
|
+
- lib/generators/servi_craft/templates/update.template
|
34
68
|
- lib/servi_craft.rb
|
35
69
|
- lib/servi_craft/create.rb
|
36
70
|
- lib/servi_craft/destroy.rb
|