rider-kick 0.0.2 → 0.0.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.
Files changed (24) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -28
  3. data/lib/generators/rider_kick/USAGE +4 -7
  4. data/lib/generators/rider_kick/clean_arch_generator.rb +6 -8
  5. data/lib/generators/rider_kick/scaffold_generator.rb +17 -14
  6. data/lib/generators/rider_kick/structure_generator.rb +14 -13
  7. data/lib/generators/rider_kick/templates/README.md +1 -3
  8. data/lib/generators/rider_kick/templates/config/initializers/hashie.rb.tt +1 -0
  9. data/lib/generators/rider_kick/templates/db/structures/example.yaml.tt +45 -17
  10. data/lib/generators/rider_kick/templates/domains/core/repositories/abstract_repository.rb.tt +1 -1
  11. data/lib/generators/rider_kick/templates/domains/core/use_cases/contract/default.rb.tt +3 -3
  12. data/lib/generators/rider_kick/templates/domains/core/use_cases/create.rb.tt +1 -1
  13. data/lib/generators/rider_kick/templates/domains/core/use_cases/destroy.rb.tt +1 -1
  14. data/lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id.rb.tt +1 -1
  15. data/lib/generators/rider_kick/templates/domains/core/use_cases/list.rb.tt +1 -1
  16. data/lib/generators/rider_kick/templates/domains/core/use_cases/update.rb.tt +1 -1
  17. data/lib/generators/rider_kick/templates/models/application_record.rb +7 -0
  18. data/lib/generators/rider_kick/templates/models/models.rb +2 -0
  19. data/lib/rider-kick.rb +0 -3
  20. data/lib/rider_kick/version.rb +1 -1
  21. metadata +4 -5
  22. data/lib/generators/rider_kick/init_generator.rb +0 -15
  23. data/lib/generators/rider_kick/templates/config/initializers/rider_kick.rb +0 -3
  24. data/lib/rider_kick/configuration.rb +0 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2202ce45cec1f54ec7ad7d7e7cea9f9cbca29644d5ea99500d5b5168198b1f55
4
- data.tar.gz: 0b79036ead139ee15e1d3f7180be8c3c98b16453cbe9166d9185fa9eb5397d8f
3
+ metadata.gz: ca2aedb4749c52fc2cf24c4ab16564c3bb334eca159e674b4e0ce2e1b138af7c
4
+ data.tar.gz: d48958c8210c77dc852a9a9f7ccb51c1a439848e7397581be5e8546929a1153b
5
5
  SHA512:
6
- metadata.gz: 45a3430a608c8ed6509f56127082c9f54545f6af7fd19105d500d1ecf9f5ff32f48f988208c1b877b52720b712b15568c85d107f5f056eee29e782b1b214d0b7
7
- data.tar.gz: d7296b1a448f475f8c6b0a980530e2b535a7ac54e364d4ca72719012f59f6f2a6a906ef30b0c0704f1fd402c15f558fcd2fa4059ce372eeb7a7c4d6bb24b7d51
6
+ metadata.gz: a3b44f67e107355e1cb5f6c56df0e071393c612d5b5e36d6b8cba84f7cefb36570c9ef4d0b4e38df94ee6ee5eca1a66f2bca03bfaacc812cffb466c490b01b79
7
+ data.tar.gz: fc8999432b430ddc353aad9d64f459acbb8974ae42ee824928f4821358e1c1ea98a6531322cec9fa10e75f8f98eca4a93f5791edd4ba689d4fe2592298b4ff38
data/README.md CHANGED
@@ -12,36 +12,28 @@ gem 'rider-kick'
12
12
  ```
13
13
 
14
14
  And then execute:
15
-
15
+ ```bash
16
+ $ rails new kotaro_minami -d=postgresql -T --skip-javascript --skip-asset-pipeline
16
17
  $ bundle install
17
- $ bundle binstubs rider-kick
18
+ $ bundle add rider-kick
19
+ $ bundle add sun-sword
18
20
  $ rails generate rider_kick:clean_arch --setup
19
21
  $ rails db:drop db:create db:migrate db:seed
20
- $ rubocop -a
22
+ $ rails generate rider_kick:structure Models::User actor:owner
23
+ $ rails generate rider_kick:scaffold users scope:dashboard
24
+ ```
21
25
 
22
26
  ## Usage
23
27
  ```bash
24
28
  Description:
25
- Clean Architecture generator
26
-
29
+ Clean Architecture generator
30
+ rails new kotaro_minami -d=postgresql -T --skip-javascript --skip-asset-pipeline
31
+
27
32
  Example:
28
- To Generate Structure:
29
- bin/rails generate rider_kick:clean_arch --setup
30
-
31
- To undo:
32
- bin/rails destroy rider_kick:clean_arch --setup
33
-
34
33
  To Generate scaffold:
35
- bin/rails generate rider_kick:scaffold Models::Contact actor:user
36
-
37
- To undo:
38
- bin/rails destroy rider_kick:scaffold Models::Contact actor:user
39
-
40
- To Generate Domain:
41
- bin/rails generate rider_kick:blank actor:user action:create scope:Contact --use_case --repository --builder --entity
42
-
43
- To undo:
44
- bin/rails destroy rider_kick:blank actor:user action:create scope:Contact --use_case --repository --builder --entity
34
+ bin/rails generate rider_kick:clean_arch --setup
35
+ bin/rails generate rider_kick:structure Models::User actor:owner
36
+ bin/rails generate rider_kick:scaffold users scope:dashboard
45
37
 
46
38
  ```
47
39
 
@@ -55,20 +47,25 @@ This structure provides helper interfaces and classes to assist in the construct
55
47
 
56
48
  ```
57
49
  - app
58
- - services
59
- - api
50
+ - models
51
+ - models
60
52
  - ...
61
53
  - domains
62
- - entities (Contract Response)
63
- - builder
64
- - repositories (Business logic)
65
- - use_cases (Just Usecase)
66
- - utils (Class Reusable)
54
+ - core
55
+ ...
56
+ - entities (Contract Response)
57
+ - builder
58
+ - repositories (Business logic)
59
+ - use_cases (Just Usecase)
60
+ - utils (Class Reusable)
67
61
  ```
68
62
  ## Screaming architecture - use cases as an organisational principle
69
63
  Uncle Bob suggests that your source code organisation should allow developers to easily find a listing of all use cases your application provides. Here's an example of how this might look in a this application.
70
64
  ```
71
65
  - app
66
+ - models
67
+ - models
68
+ - ...
72
69
  - domains
73
70
  - core
74
71
  ...
@@ -1,12 +1,9 @@
1
1
  Description:
2
2
  Clean Architecture generator
3
+ rails new kotaro_minami -d=postgresql -T --skip-javascript --skip-asset-pipeline
3
4
 
4
5
  Example:
5
- To Generate Init:
6
- bin/rails generate rider_kick:init
7
-
8
- To Generate Pattern:
9
- bin/rails generate rider_kick:clean_arch --setup
10
-
11
6
  To Generate scaffold:
12
- bin/rails generate rider_kick:scaffold Models::Contact actor:user
7
+ bin/rails generate rider_kick:clean_arch --setup
8
+ bin/rails generate rider_kick:structure Models::User actor:owner
9
+ bin/rails generate rider_kick:scaffold users scope:dashboard
@@ -6,7 +6,6 @@ module RiderKick
6
6
 
7
7
  def validate_setup_option
8
8
  raise Thor::Error, 'The --setup option must be specified to create the domain structure.' unless options.setup
9
- validation!
10
9
  end
11
10
 
12
11
  def create_gem_dependencies
@@ -22,6 +21,7 @@ module RiderKick
22
21
  setup_gitignore
23
22
  setup_rubocop
24
23
  setup_init_migration
24
+ setup_models
25
25
  setup_active_storage
26
26
  setup_rspec
27
27
  setup_readme
@@ -34,13 +34,6 @@ module RiderKick
34
34
  run 'rails db:migrate'
35
35
  end
36
36
 
37
- def validation!
38
- unless File.exist?('config/initializers/rider_kick.rb')
39
- say 'Error must create init configuration for rider_kick!'
40
- raise Thor::Error, 'run: bin/rails generate rider_kick:init'
41
- end
42
- end
43
-
44
37
  def setup_domain_structure
45
38
  empty_directory File.join("#{path_app}/domains/core/use_cases/contract")
46
39
  empty_directory File.join("#{path_app}/domains/core/repositories")
@@ -106,6 +99,11 @@ module RiderKick
106
99
  template 'config/database.yml', File.join('config/database.yml')
107
100
  end
108
101
 
102
+ def setup_models
103
+ template 'models/application_record.rb', File.join('app/models/application_record.rb')
104
+ template 'models/models.rb', File.join('app/models/models.rb')
105
+ end
106
+
109
107
  def copy_env_development
110
108
  template 'env.production', File.join('.env.production')
111
109
  template 'env.development', File.join('.env.development')
@@ -4,6 +4,7 @@ module RiderKick
4
4
  source_root File.expand_path('templates', __dir__)
5
5
 
6
6
  argument :arg_structure, type: :string, default: '', banner: ''
7
+ argument :arg_scope, type: :hash, default: '', banner: 'scope:dashboard'
7
8
 
8
9
  def generate_use_case
9
10
  validation!
@@ -21,9 +22,9 @@ module RiderKick
21
22
  private
22
23
 
23
24
  def validation!
24
- unless File.exist?('config/initializers/rider_kick.rb')
25
- say 'Error must create init configuration for rider_kick!'
26
- raise Thor::Error, 'run: bin/rails generate rider_kick:init'
25
+ unless Dir.exist?('app/domains')
26
+ say 'Error must create clean arch structure first!'
27
+ raise Thor::Error, 'run: bin/rails generate rider_kick:clean_arch --setup'
27
28
  end
28
29
  end
29
30
 
@@ -39,22 +40,25 @@ module RiderKick
39
40
  @actor = @structure.actor
40
41
  @uploaders = @structure.uploaders || []
41
42
  @search_able = @structure.search_able || []
42
- @services = @structure.services || {}
43
- @contract_list = @services.action_list.contract || []
44
- @contract_fetch_by_id = @services.action_fetch_by_id.contract || []
45
- @contract_create = @services.action_create.contract || []
46
- @contract_update = @services.action_update.contract || []
47
- @contract_destroy = @services.action_destroy.contract || []
43
+ @services = @structure.domains || {}
44
+ @contract_list = @services.action_list.use_case.contract || []
45
+ @contract_fetch_by_id = @services.action_fetch_by_id.use_case.contract || []
46
+ @contract_create = @services.action_create.use_case.contract || []
47
+ @contract_update = @services.action_update.use_case.contract || []
48
+ @contract_destroy = @services.action_destroy.use_case.contract || []
48
49
  @skipped_fields = entity.skipped_fields || []
49
50
  @custom_fields = entity.custom_fields || []
50
51
 
51
52
  @variable_subject = model_name.split('::').last.underscore.downcase
52
53
  @scope_path = resource_name.pluralize.underscore.downcase
54
+ @scope_class = @scope_path.camelize
53
55
  @model_class = model_name.camelize.constantize
54
56
  @subject_class = resource_name.camelize
55
57
  @fields = contract_fields
58
+ @route_scope_path = arg_scope['scope'].to_s.downcase rescue ''
59
+ @route_scope_class = @route_scope_path.camelize rescue ''
56
60
 
57
- @type_mapping = {
61
+ @type_mapping = {
58
62
  'uuid' => ':string',
59
63
  'string' => ':string',
60
64
  'text' => ':string',
@@ -83,11 +87,10 @@ module RiderKick
83
87
  use_case_filename = build_usecase_filename(action, suffix)
84
88
  repository_filename = build_repository_filename(action, suffix)
85
89
 
86
- @scope_class = @scope_path.camelize
87
90
  @use_case_class = use_case_filename.camelize
88
91
  @repository_class = repository_filename.camelize
89
92
 
90
- template "domains/core/use_cases/#{action + suffix}.rb.tt", File.join("#{root_path_app}/domains/core/use_cases/#{@scope_path}", "#{use_case_filename}.rb")
93
+ template "domains/core/use_cases/#{action + suffix}.rb.tt", File.join("#{root_path_app}/domains/core/use_cases/", @route_scope_path.to_s, @scope_path.to_s, "#{use_case_filename}.rb")
91
94
  template "domains/core/repositories/#{action + suffix}.rb.tt", File.join("#{root_path_app}/domains/core/repositories/#{@scope_path}", "#{repository_filename}.rb")
92
95
  end
93
96
 
@@ -98,8 +101,8 @@ module RiderKick
98
101
 
99
102
  def contract_fields
100
103
  skip_contract_fields = @skipped_fields.map(&:strip).uniq
101
- if RiderKick.scope_owner_column.present?
102
- skip_contract_fields << RiderKick.scope_owner_column.to_s
104
+ if @scope_owner_column.present?
105
+ skip_contract_fields << @scope_owner_column.to_s
103
106
  end
104
107
  @model_class.columns.reject { |column| skip_contract_fields.include?(column.name.to_s) }.map(&:name).map(&:to_s)
105
108
  end
@@ -3,7 +3,7 @@ module RiderKick
3
3
  source_root File.expand_path('templates', __dir__)
4
4
 
5
5
  argument :arg_model_name, type: :string, default: '', banner: 'Models::Name'
6
- argument :arg_settings, type: :hash, default: '', banner: 'actor:user uploader_filed:assets,images,picture,document'
6
+ argument :arg_settings, type: :hash, default: '', banner: 'route_scope:dashboard actor:user uploader_filed:assets,images,picture,document'
7
7
 
8
8
  def generate_use_case
9
9
  validation!
@@ -14,21 +14,22 @@ module RiderKick
14
14
  private
15
15
 
16
16
  def validation!
17
- unless File.exist?('config/initializers/rider_kick.rb')
18
- say 'Error must create init configuration for rider_kick!'
19
- raise Thor::Error, 'run: bin/rails generate rider_kick:init'
17
+ unless Dir.exist?('app/domains')
18
+ say 'Error must create clean arch structure first!'
19
+ raise Thor::Error, 'run: bin/rails generate rider_kick:clean_arch --setup'
20
20
  end
21
21
  end
22
22
 
23
23
  def setup_variables
24
- @variable_subject = arg_model_name.split('::').last.underscore.downcase
25
- @model_class = arg_model_name.camelize.constantize
26
- @subject_class = arg_model_name.split('::').last
27
- @scope_path = @subject_class.pluralize.underscore.downcase
28
- @scope_class = @scope_path.camelize
29
- @fields = contract_fields
30
- @uploaders = uploaders
31
- @actor = arg_settings['actor'].downcase
24
+ @scope_owner_column = (SunSword.scope_owner_column.to_s rescue '')
25
+ @variable_subject = arg_model_name.split('::').last.underscore.downcase
26
+ @model_class = arg_model_name.camelize.constantize
27
+ @subject_class = arg_model_name.split('::').last
28
+ @scope_path = @subject_class.pluralize.underscore.downcase
29
+ @scope_class = @scope_path.camelize
30
+ @fields = contract_fields
31
+ @uploaders = uploaders
32
+ @actor = arg_settings['actor'].downcase
32
33
 
33
34
  @type_mapping = {
34
35
  'uuid' => ':string',
@@ -60,7 +61,7 @@ module RiderKick
60
61
  end
61
62
 
62
63
  def contract_fields
63
- @model_class.columns.reject { |column| (['id', 'created_at', 'updated_at', 'type'] + [RiderKick.scope_owner_column.to_s]).include?(column.name.to_s) }.map(&:name).map(&:to_s)
64
+ @model_class.columns.reject { |column| (['id', 'created_at', 'updated_at', 'type'] + [@scope_owner_column.to_s]).include?(column.name.to_s) }.map(&:name).map(&:to_s)
64
65
  end
65
66
 
66
67
  def get_column_type(field)
@@ -4,9 +4,7 @@
4
4
  ```bash
5
5
  $ cp env.example .env.development
6
6
  $ bundle install
7
- $ rails db:create
8
- $ rails db:migrate
9
- $ rails db:seed
7
+ $ rails db:drop db:create db:migrate db:seed
10
8
  ```
11
9
  ### Run Server
12
10
  ```bash
@@ -10,6 +10,7 @@ def to_mash
10
10
  end
11
11
  RUBY
12
12
 
13
+ Pagy.class_eval(as_attributes)
13
14
  Hash.class_eval(as_attributes)
14
15
  Hash.class_eval(to_methods)
15
16
  Hashie::Mash.class_eval(as_attributes)
@@ -5,6 +5,9 @@ fields:
5
5
  <% @model_class.columns.each do |field| -%>
6
6
  - <%= field.name.to_s %>
7
7
  <% end -%>
8
+ <% @uploaders.each do |field| -%>
9
+ - <%= field %>
10
+ <% end -%>
8
11
  uploaders:
9
12
  <% @uploaders.each do |field| -%>
10
13
  - <%= field %>
@@ -15,44 +18,69 @@ search_able:
15
18
  - <%= field %>
16
19
  <% end -%>
17
20
  <% end -%>
18
- services:
21
+ controllers:
22
+ list_fields:
23
+ <% @fields.each do |field| -%>
24
+ - <%= field %>
25
+ <% end -%>
26
+ show_fields:
27
+ <% @model_class.columns.each do |field| -%>
28
+ - <%= field.name.to_s %>
29
+ <% end -%>
30
+ <% @uploaders.each do |field| -%>
31
+ - <%= field %>
32
+ <% end -%>
33
+ form_fields:
34
+ <% (@fields).each do |field| -%>
35
+ - name: <%= field %>
36
+ type: string
37
+ <% end -%>
38
+ <% (@uploaders).each do |field| -%>
39
+ - name: <%= field %>
40
+ type: file
41
+ <% end -%>
42
+ domains:
19
43
  action_list:
20
- contract:
44
+ use_case:
45
+ contract:
21
46
  action_fetch_by_id:
22
- is_auth: true
23
- is_skip_endpoint: false
24
- use_case_class: <%= "#{@actor}_fetch_#{@variable_subject}_by_id".camelize %>
25
- contract:
26
- - required(:id).filled(:string)
47
+ use_case:
48
+ contract:
49
+ - required(:id).filled(:string)
27
50
  action_create:
28
- contract:
51
+ use_case:
52
+ contract:
29
53
  <% (@fields + @uploaders).each do |field| -%>
30
54
  <% column_type = get_column_type(field) -%>
31
55
  <% dry_type = @type_mapping[column_type.to_s] || ':string' -%>
32
56
  <% if @uploaders.include?(field) -%>
33
- - optional(:<%= field %>).maybe(<%= dry_type %>)
57
+ - optional(:<%= field %>).maybe(<%= dry_type %>)
34
58
  <% else -%>
35
- - required(:<%= field %>).filled(<%= dry_type %>)
59
+ - required(:<%= field %>).filled(<%= dry_type %>)
36
60
  <% end -%>
37
61
  <% end -%>
38
62
  action_update:
39
- contract:
40
- - required(:id).filled(:string)
63
+ use_case:
64
+ contract:
65
+ - required(:id).filled(:string)
41
66
  <% (@fields + @uploaders).each do |field| -%>
42
67
  <% column_type = get_column_type(field) -%>
43
68
  <% dry_type = @type_mapping[column_type.to_s] || ':string' -%>
44
69
  <% if @uploaders.include?(field) -%>
45
- - optional(:<%= field %>).maybe(<%= dry_type %>)
70
+ - optional(:<%= field %>).maybe(<%= dry_type %>)
46
71
  <% else -%>
47
- - optional(:<%= field %>).maybe(<%= dry_type %>)
72
+ - optional(:<%= field %>).maybe(<%= dry_type %>)
48
73
  <% end -%>
49
74
  <% end -%>
50
75
  action_destroy:
51
- contract:
52
- - required(:id).filled(:string)
76
+ use_case:
77
+ contract:
78
+ - required(:id).filled(:string)
53
79
  entity:
54
80
  skipped_fields:
55
81
  - id
56
82
  - created_at
57
83
  - updated_at
58
- - type
84
+ <% if @model_class.columns.map(&:name).include?(:type) -%>
85
+ - type
86
+ <% end -%>
@@ -40,7 +40,7 @@ class Core::Repositories::AbstractRepository
40
40
  end
41
41
 
42
42
  def paginate!(pagy)
43
- Core::Builders::Pagination.new(Hashie::Mash.new(pagy.as_json)).build
43
+ Core::Builders::Pagination.new(pagy).build
44
44
  end
45
45
 
46
46
  def build_pagination_variable!(params)
@@ -9,9 +9,9 @@ class Core::UseCases::Contract::Default
9
9
 
10
10
  def default
11
11
  Dry::Schema.Params do
12
- <% if RiderKick.scope_owner_column.present? -%>
13
- required(:<%=RiderKick.scope_owner_column%> ).filled(:string)
14
- <% end-%>
12
+ if @scope_owner_column.present?
13
+ required(@scope_owner_column).filled(:string)
14
+ end
15
15
  end
16
16
  end
17
17
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Core::UseCases::<%= @scope_class %>::<%= @use_case_class %> < RiderKick::UseCases::AbstractUseCase
3
+ class Core::UseCases::<%= [@route_scope_class, @scope_class, @use_case_class].reject { |c| c.empty? }.join("::") %> < RiderKick::UseCases::AbstractUseCase
4
4
  contract do
5
5
  params(Core::UseCases::Contract::Default.new.call) do
6
6
  <% @contract_create.each do |field| -%>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Core::UseCases::<%= @scope_class %>::<%= @use_case_class %> < RiderKick::UseCases::AbstractUseCase
3
+ class Core::UseCases::<%= [@route_scope_class, @scope_class, @use_case_class].reject { |c| c.empty? }.join("::") %> < RiderKick::UseCases::AbstractUseCase
4
4
  contract do
5
5
  params(Core::UseCases::Contract::Default.new.call) do
6
6
  <% @contract_destroy.each do |field| -%>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Core::UseCases::<%= @scope_class %>::<%= @use_case_class %> < RiderKick::UseCases::AbstractUseCase
3
+ class Core::UseCases::<%= [@route_scope_class, @scope_class, @use_case_class].reject { |c| c.empty? }.join("::") %> < RiderKick::UseCases::AbstractUseCase
4
4
  contract do
5
5
  params(Core::UseCases::Contract::Default.new.call) do
6
6
  <% @contract_fetch_by_id.each do |field| -%>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Core::UseCases::<%= @scope_class %>::<%= @use_case_class %> < RiderKick::UseCases::AbstractUseCase
3
+ class Core::UseCases::<%= [@route_scope_class, @scope_class, @use_case_class].reject { |c| c.empty? }.join("::") %> < RiderKick::UseCases::AbstractUseCase
4
4
  contract do
5
5
  params(Core::UseCases::Contract::Default.new.call, Core::UseCases::Contract::Pagination.new.call) do
6
6
  <% @contract_list.each do |field| -%>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Core::UseCases::<%= @scope_class %>::<%= @use_case_class %> < RiderKick::UseCases::AbstractUseCase
3
+ class Core::UseCases::<%= [@route_scope_class, @scope_class, @use_case_class].reject { |c| c.empty? }.join("::") %> < RiderKick::UseCases::AbstractUseCase
4
4
  contract do
5
5
  params(Core::UseCases::Contract::Default.new.call) do
6
6
  <% @contract_update.each do |field| -%>
@@ -0,0 +1,7 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ primary_abstract_class
3
+ self.abstract_class = true
4
+
5
+ # Adjust default sort order
6
+ self.implicit_order_column = :created_at
7
+ end
@@ -0,0 +1,2 @@
1
+ module Models
2
+ end
data/lib/rider-kick.rb CHANGED
@@ -5,10 +5,7 @@ require 'rider_kick/builders/abstract_active_record_entity_builder'
5
5
  require 'rider_kick/matchers/use_case_result'
6
6
  require 'rider_kick/use_cases/abstract_use_case'
7
7
  require 'rider_kick/use_cases/contract'
8
- require 'rider_kick/configuration'
9
8
  require 'rider_kick/version'
10
9
 
11
10
  module RiderKick
12
- extend RiderKick::Configuration
13
- define_setting :scope_owner_column, ''
14
11
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RiderKick
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.4'
5
5
  public_constant :VERSION
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rider-kick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kotaro Minami
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-15 00:00:00.000000000 Z
11
+ date: 2024-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-matcher
@@ -151,7 +151,6 @@ files:
151
151
  - Rakefile
152
152
  - lib/generators/rider_kick/USAGE
153
153
  - lib/generators/rider_kick/clean_arch_generator.rb
154
- - lib/generators/rider_kick/init_generator.rb
155
154
  - lib/generators/rider_kick/scaffold_generator.rb
156
155
  - lib/generators/rider_kick/structure_generator.rb
157
156
  - lib/generators/rider_kick/templates/.gitignore
@@ -163,7 +162,6 @@ files:
163
162
  - lib/generators/rider_kick/templates/config/initializers/generators.rb.tt
164
163
  - lib/generators/rider_kick/templates/config/initializers/hashie.rb.tt
165
164
  - lib/generators/rider_kick/templates/config/initializers/pagy.rb.tt
166
- - lib/generators/rider_kick/templates/config/initializers/rider_kick.rb
167
165
  - lib/generators/rider_kick/templates/config/initializers/version.rb.tt
168
166
  - lib/generators/rider_kick/templates/config/initializers/zeitwerk.rb.tt
169
167
  - lib/generators/rider_kick/templates/db/migrate/20220613145533_init_database.rb
@@ -192,6 +190,8 @@ files:
192
190
  - lib/generators/rider_kick/templates/env.development
193
191
  - lib/generators/rider_kick/templates/env.production
194
192
  - lib/generators/rider_kick/templates/env.test
193
+ - lib/generators/rider_kick/templates/models/application_record.rb
194
+ - lib/generators/rider_kick/templates/models/models.rb
195
195
  - lib/generators/rider_kick/templates/spec/fixtures/sample.pdf
196
196
  - lib/generators/rider_kick/templates/spec/rails_helper.rb
197
197
  - lib/generators/rider_kick/templates/spec/support/file_stuber.rb
@@ -199,7 +199,6 @@ files:
199
199
  - lib/rider-kick.rb
200
200
  - lib/rider_kick/builders/abstract_active_record_entity_builder.rb
201
201
  - lib/rider_kick/builders/abstract_active_record_entity_builder_spec.rb
202
- - lib/rider_kick/configuration.rb
203
202
  - lib/rider_kick/entities/failure_details.rb
204
203
  - lib/rider_kick/matchers/use_case_result.rb
205
204
  - lib/rider_kick/matchers/use_case_result_spec.rb
@@ -1,15 +0,0 @@
1
- module RiderKick
2
- class InitGenerator < Rails::Generators::Base
3
- source_root File.expand_path('templates', __dir__)
4
-
5
- def setup_configuration
6
- copy_initializer('rider_kick')
7
- end
8
-
9
- private
10
-
11
- def copy_initializer(file_name)
12
- template "config/initializers/#{file_name}.rb", File.join("config/initializers/#{file_name}.rb")
13
- end
14
- end
15
- end
@@ -1,3 +0,0 @@
1
- RiderKick.setup do |config|
2
- config.scope_owner_column = :organization_id
3
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RiderKick
4
- module Configuration
5
- def setup
6
- yield self
7
- end
8
-
9
- def define_setting(name, default = nil)
10
- class_variable_set("@@#{name}", default)
11
-
12
- define_class_method "#{name}=" do |value|
13
- class_variable_set("@@#{name}", value)
14
- end
15
-
16
- define_class_method name do
17
- class_variable_get("@@#{name}")
18
- end
19
- end
20
-
21
- private
22
-
23
- def define_class_method(name, &block)
24
- (class << self; self; end).instance_eval do
25
- define_method name, &block
26
- end
27
- end
28
- end
29
- end