rails-domino 0.2.9.3 → 0.2.9.4
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/domino/scaffolder.rb +15 -0
- data/lib/domino/version.rb +1 -1
- data/lib/domino.rb +7 -0
- data/lib/generators/domino/domino_generator.rb +12 -1
- data/lib/generators/domino/templates/controller.rb.tt +1 -1
- data/lib/generators/domino/templates/service.rb.tt +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a39ffa29f651ad914316824a2004228aedff537a369a0704ce5bc34c2b0b31e9
|
4
|
+
data.tar.gz: 552c59f30efcf68a28e7bb4c0a85b96617980c50a22deaca2e06bb796984b21f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65d804ef525ed2e1f7d8c31baad5ef935a3e107f9f2e3973e42f362ab1bd502548233ade01aadb8cbb7f9cc4313e9374f0166de07a213b4f6ed9d3f5390e0629
|
7
|
+
data.tar.gz: 5d171075e1734350034e82eddbbb7d6484539173aa9387dd7aac4d148af831c73f1835a937ee4663520ac6702afc71b74dd86b992164e260c6ac328bfa6a893b
|
data/lib/domino/scaffolder.rb
CHANGED
@@ -35,8 +35,13 @@ module Domino
|
|
35
35
|
|
36
36
|
def run
|
37
37
|
generate_model_file if @generate_model
|
38
|
+
|
38
39
|
generate_file("repository")
|
40
|
+
register_dependency("#{@file_name}_repository", "#{@model_name}Repository")
|
41
|
+
|
39
42
|
generate_file("service")
|
43
|
+
register_dependency("#{@file_name}_service", "#{@model_name}Service")
|
44
|
+
|
40
45
|
generate_file("blueprint")
|
41
46
|
generate_file("controller")
|
42
47
|
end
|
@@ -98,5 +103,15 @@ module Domino
|
|
98
103
|
FileUtils.mkdir_p(folder)
|
99
104
|
File.write(File.join(folder, filename), content)
|
100
105
|
end
|
106
|
+
|
107
|
+
def register_dependency(key, class_name)
|
108
|
+
init_file = Rails.root.join("config/initializers/domino_container.rb")
|
109
|
+
line = "Domino::Container.register(\"#{key}\", -> { #{class_name}.new })"
|
110
|
+
|
111
|
+
FileUtils.mkdir_p(File.dirname(init_file))
|
112
|
+
return if File.exist?(init_file) && File.read(init_file).include?(line)
|
113
|
+
|
114
|
+
File.write(init_file, "#{line}\n", mode: "a")
|
115
|
+
end
|
101
116
|
end
|
102
117
|
end
|
data/lib/domino/version.rb
CHANGED
data/lib/domino.rb
CHANGED
@@ -4,7 +4,14 @@ require "domino/version"
|
|
4
4
|
require "domino/scaffolder"
|
5
5
|
require "domino/railtie"
|
6
6
|
|
7
|
+
require "dry/auto_inject"
|
8
|
+
require "dry/container"
|
9
|
+
|
7
10
|
module Domino # rubocop:disable Style/Documentation
|
11
|
+
Container = Dry::Container.new
|
12
|
+
|
13
|
+
Import = Dry::AutoInject(Container)
|
14
|
+
|
8
15
|
def self.scaffold(**kwargs)
|
9
16
|
Scaffolder.scaffold(**kwargs)
|
10
17
|
end
|
@@ -15,7 +15,6 @@ class DominoGenerator < Rails::Generators::NamedBase # rubocop:disable Style/Doc
|
|
15
15
|
@model_name = class_name
|
16
16
|
@file_name = file_name
|
17
17
|
@plural_file_name = file_name.pluralize
|
18
|
-
# @fields = attributes.map { |a| a.split(":").first }.reject { |f| f == "id" }
|
19
18
|
@fields = attributes.map(&:name).reject { |f| f == "id" }
|
20
19
|
end
|
21
20
|
|
@@ -27,10 +26,12 @@ class DominoGenerator < Rails::Generators::NamedBase # rubocop:disable Style/Doc
|
|
27
26
|
|
28
27
|
def create_service
|
29
28
|
template "service.rb.tt", File.join("app/services", "#{@file_name}_service.rb")
|
29
|
+
register_dependency("#{@file_name}_service", "#{@model_name}Service")
|
30
30
|
end
|
31
31
|
|
32
32
|
def create_repository
|
33
33
|
template "repository.rb.tt", File.join("app/repositories", "#{@file_name}_repository.rb")
|
34
|
+
register_dependency("#{@file_name}_repository", "#{@model_name}Repository")
|
34
35
|
end
|
35
36
|
|
36
37
|
def create_blueprint
|
@@ -40,4 +41,14 @@ class DominoGenerator < Rails::Generators::NamedBase # rubocop:disable Style/Doc
|
|
40
41
|
def create_controller
|
41
42
|
template "controller.rb.tt", File.join("app/controllers", "#{@plural_file_name}_controller.rb")
|
42
43
|
end
|
44
|
+
|
45
|
+
def register_dependency(key, class_name)
|
46
|
+
init_file = Rails.root.join("config/initializers/domino_container.rb")
|
47
|
+
line = "Domino::Container.register(\"#{key}\", -> { #{class_name}.new })"
|
48
|
+
|
49
|
+
FileUtils.mkdir_p(File.dirname(init_file))
|
50
|
+
return if File.exist?(init_file) && File.read(init_file).include?(line)
|
51
|
+
|
52
|
+
File.write(init_file, "#{line}\n", mode: "a")
|
53
|
+
end
|
43
54
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Controller for <%= @model_name.pluralize %> API endpoints.
|
2
2
|
#
|
3
3
|
class <%= @model_name.pluralize %>Controller < ApplicationController
|
4
|
-
include Import['<%= @model_name.underscore %>_service']
|
4
|
+
include Domino::Import['<%= @model_name.underscore %>_service']
|
5
5
|
|
6
6
|
# GET /<%= @plural_file_name %>
|
7
7
|
# @return [JSON]
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# result = service.get(1)
|
6
6
|
#
|
7
7
|
class <%= @model_name %>Service < BaseService
|
8
|
-
include Import['<%= @model_name.underscore %>_repository']
|
8
|
+
include Domino::Import['<%= @model_name.underscore %>_repository']
|
9
9
|
|
10
10
|
# @param <%= @file_name %>_repository [<%= @model_name %>Repository]
|
11
11
|
def initialize(<%= @model_name.underscore %>_repository:)
|