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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ad8b002c5b3dbc3acaacd130c2aa856a37fd9fadea0d159b0a7153f45f7a362
4
- data.tar.gz: 5a34dc2bbc0462735e0fd32be3a55c64179dc0f84e811f423fae3a8807eb98cf
3
+ metadata.gz: a39ffa29f651ad914316824a2004228aedff537a369a0704ce5bc34c2b0b31e9
4
+ data.tar.gz: 552c59f30efcf68a28e7bb4c0a85b96617980c50a22deaca2e06bb796984b21f
5
5
  SHA512:
6
- metadata.gz: 386ebca7ab3f1134f0f19d3f804152401358ac1c8cd90cb26295d343c9fd222fb7b9631e9d91fb98c244a69899379616b971f3399c1b37c627c1c3d21ae0c032
7
- data.tar.gz: b14b99a9ec6750e925748d55c3a98accd60ff885c2e613a8f51fc994198c5ecc2f9caa663f56e1253c059ef09712dc6468b3276f20af52be09c279cebb779257
6
+ metadata.gz: 65d804ef525ed2e1f7d8c31baad5ef935a3e107f9f2e3973e42f362ab1bd502548233ade01aadb8cbb7f9cc4313e9374f0166de07a213b4f6ed9d3f5390e0629
7
+ data.tar.gz: 5d171075e1734350034e82eddbbb7d6484539173aa9387dd7aac4d148af831c73f1835a937ee4663520ac6702afc71b74dd86b992164e260c6ac328bfa6a893b
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Domino
4
- VERSION = "0.2.9.3"
4
+ VERSION = "0.2.9.4"
5
5
  end
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:)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-domino
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9.3
4
+ version: 0.2.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - kiebor81