steel_wheel 0.6.0 → 0.7.0

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/main.yml +39 -0
  3. data/.qlty/.gitignore +7 -0
  4. data/.qlty/qlty.toml +82 -0
  5. data/.ruby-version +1 -1
  6. data/Gemfile +2 -1
  7. data/Gemfile.lock +148 -108
  8. data/README.md +627 -224
  9. data/lib/generators/steel_wheel/application_handler/templates/handler_template.rb +4 -0
  10. data/lib/generators/steel_wheel/form/USAGE +8 -0
  11. data/lib/generators/steel_wheel/form/form_generator.rb +16 -0
  12. data/lib/generators/steel_wheel/form/templates/form_template.rb +3 -0
  13. data/lib/generators/steel_wheel/handler/templates/handler_template.rb +5 -16
  14. data/lib/generators/steel_wheel/scaffold_controller/USAGE +14 -0
  15. data/lib/generators/steel_wheel/scaffold_controller/scaffold_controller_generator.rb +100 -0
  16. data/lib/generators/steel_wheel/scaffold_controller/templates/controller.rb +65 -0
  17. data/lib/generators/steel_wheel/scaffold_controller/templates/create.rb +23 -0
  18. data/lib/generators/steel_wheel/scaffold_controller/templates/form.tt +12 -0
  19. data/lib/generators/steel_wheel/scaffold_controller/templates/index.rb +17 -0
  20. data/lib/generators/steel_wheel/scaffold_controller/templates/model_form.rb +32 -0
  21. data/lib/generators/steel_wheel/scaffold_controller/templates/search_form.rb +31 -0
  22. data/lib/generators/steel_wheel/scaffold_controller/templates/update.rb +31 -0
  23. data/lib/steel_wheel/callbacks.rb +34 -0
  24. data/lib/steel_wheel/components.rb +54 -0
  25. data/lib/steel_wheel/filters.rb +36 -0
  26. data/lib/steel_wheel/handler.rb +67 -68
  27. data/lib/steel_wheel/params.rb +5 -1
  28. data/lib/steel_wheel/preconditions.rb +36 -0
  29. data/lib/steel_wheel/query/dependency_validator.rb +14 -0
  30. data/lib/steel_wheel/query/exists_validator.rb +15 -0
  31. data/lib/steel_wheel/query/verify_validator.rb +30 -0
  32. data/lib/steel_wheel/railtie.rb +50 -0
  33. data/lib/steel_wheel/shortcuts.rb +28 -0
  34. data/lib/steel_wheel/version.rb +1 -1
  35. data/lib/steel_wheel.rb +35 -6
  36. data/steel_wheel.gemspec +4 -4
  37. metadata +38 -30
  38. data/.github/workflows/ruby.yml +0 -43
  39. data/lib/generators/steel_wheel/command/USAGE +0 -8
  40. data/lib/generators/steel_wheel/command/command_generator.rb +0 -16
  41. data/lib/generators/steel_wheel/command/templates/command_template.rb +0 -5
  42. data/lib/generators/steel_wheel/params/USAGE +0 -8
  43. data/lib/generators/steel_wheel/params/params_generator.rb +0 -16
  44. data/lib/generators/steel_wheel/params/templates/params_template.rb +0 -5
  45. data/lib/generators/steel_wheel/query/USAGE +0 -8
  46. data/lib/generators/steel_wheel/query/query_generator.rb +0 -16
  47. data/lib/generators/steel_wheel/query/templates/query_template.rb +0 -5
  48. data/lib/steel_wheel/command.rb +0 -24
  49. data/lib/steel_wheel/query.rb +0 -20
  50. data/lib/steel_wheel/response.rb +0 -34
@@ -1,5 +0,0 @@
1
- class <%= class_name %>Handler
2
- class Command < base_class_for(:command)
3
-
4
- end
5
- end
@@ -1,8 +0,0 @@
1
- Description:
2
- Generates operations files
3
-
4
- Example:
5
- rails generate steel_wheel:params Thing
6
-
7
- This will create:
8
- app/params/thing_params.rb
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SteelWheel
4
- class ParamsGenerator < Rails::Generators::NamedBase
5
- source_root File.expand_path('templates', __dir__)
6
-
7
- def copy_files
8
- if behavior == :revoke
9
- template 'params_template.rb', "app/handlers/#{file_path}_handler/params.rb"
10
- elsif behavior == :invoke
11
- empty_directory Pathname.new('app/params').join(*class_path)
12
- template 'params_template.rb', "app/handlers/#{file_path}_handler/params.rb"
13
- end
14
- end
15
- end
16
- end
@@ -1,5 +0,0 @@
1
- class <%= class_name %>Handler
2
- class Params < base_class_for(:params)
3
-
4
- end
5
- end
@@ -1,8 +0,0 @@
1
- Description:
2
- Generates queries files
3
-
4
- Example:
5
- rails generate steel_wheel:query Thing
6
-
7
- This will create:
8
- app/queries/thing_query.rb
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SteelWheel
4
- class QueryGenerator < Rails::Generators::NamedBase
5
- source_root File.expand_path('templates', __dir__)
6
-
7
- def copy_files
8
- if behavior == :revoke
9
- template 'query_template.rb', "app/handlers/#{file_path}_handler/query.rb"
10
- elsif behavior == :invoke
11
- empty_directory Pathname.new('app/queries').join(*class_path)
12
- template 'query_template.rb', "app/handlers/#{file_path}_handler/query.rb"
13
- end
14
- end
15
- end
16
- end
@@ -1,5 +0,0 @@
1
- class <%= class_name %>Handler
2
- class Query < base_class_for(:query)
3
-
4
- end
5
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SteelWheel
4
- # Base class for commands
5
- class Command
6
- include Memery
7
- include ActiveModel::Validations
8
-
9
- def self.name
10
- 'SteelWheel::Command'
11
- end
12
-
13
- def http_status
14
- return :ok if errors.empty?
15
- return errors.keys.first unless defined?(ActiveModel::Error)
16
-
17
- errors.map(&:type).first
18
- end
19
-
20
- def call(*)
21
- # NOOP
22
- end
23
- end
24
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SteelWheel
4
- # Base class for queries
5
- class Query
6
- include Memery
7
- include ActiveModel::Validations
8
-
9
- def self.name
10
- 'SteelWheel::Query'
11
- end
12
-
13
- def http_status
14
- return :ok if errors.empty?
15
- return errors.keys.first unless defined?(ActiveModel::Error)
16
-
17
- errors.map(&:type).first
18
- end
19
- end
20
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SteelWheel
4
- # Base class for responses
5
- class Response
6
- attr_accessor :status
7
-
8
- include ActiveModel::Validations
9
-
10
- unless defined?(ActiveModel::Error)
11
- def self.generic_validation_keys(*keys)
12
- include SteelWheel::SkipActiveModelErrorsKeys[*keys]
13
- end
14
-
15
- generic_validation_keys(:not_found, :forbidden, :unprocessable_entity, :bad_request, :unauthorized)
16
- end
17
-
18
- def self.name
19
- 'SteelWheel::Response'
20
- end
21
-
22
- def initialize
23
- @status = :ok
24
- end
25
-
26
- def success?
27
- errors.empty?
28
- end
29
-
30
- def valid?
31
- success?
32
- end
33
- end
34
- end