better_service 1.0.0 → 1.0.1

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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +253 -16
  3. data/Rakefile +1 -1
  4. data/config/locales/better_service.en.yml +37 -0
  5. data/lib/better_service/concerns/serviceable/messageable.rb +45 -2
  6. data/lib/better_service/concerns/serviceable/validatable.rb +0 -5
  7. data/lib/better_service/concerns/serviceable/viewable.rb +0 -16
  8. data/lib/better_service/presenter.rb +131 -0
  9. data/lib/better_service/railtie.rb +17 -0
  10. data/lib/better_service/services/base.rb +78 -21
  11. data/lib/better_service/services/create_service.rb +3 -0
  12. data/lib/better_service/services/destroy_service.rb +3 -0
  13. data/lib/better_service/services/update_service.rb +3 -0
  14. data/lib/better_service/subscribers/log_subscriber.rb +25 -5
  15. data/lib/better_service/version.rb +1 -1
  16. data/lib/better_service.rb +1 -0
  17. data/lib/generators/better_service/install_generator.rb +38 -0
  18. data/lib/generators/better_service/locale_generator.rb +54 -0
  19. data/lib/generators/better_service/presenter_generator.rb +60 -0
  20. data/lib/generators/better_service/templates/better_service_initializer.rb.tt +90 -0
  21. data/lib/generators/better_service/templates/locale.en.yml.tt +27 -0
  22. data/lib/generators/better_service/templates/presenter.rb.tt +53 -0
  23. data/lib/generators/better_service/templates/presenter_test.rb.tt +46 -0
  24. data/lib/generators/serviceable/scaffold_generator.rb +9 -0
  25. data/lib/generators/serviceable/templates/create_service.rb.tt +11 -1
  26. data/lib/generators/serviceable/templates/destroy_service.rb.tt +11 -1
  27. data/lib/generators/serviceable/templates/index_service.rb.tt +19 -1
  28. data/lib/generators/serviceable/templates/show_service.rb.tt +19 -1
  29. data/lib/generators/serviceable/templates/update_service.rb.tt +11 -1
  30. metadata +10 -1
@@ -33,8 +33,18 @@ class <%= class_name %>::DestroyService < BetterService::Services::DestroyServic
33
33
  end
34
34
 
35
35
  # Phase 4: Respond - Format response (optional override)
36
+ # Uses I18n message helper with fallback to default messages
37
+ #
38
+ # To customize messages, create config/locales/<%= plural_table_name %>_services.en.yml:
39
+ # en:
40
+ # <%= plural_table_name %>:
41
+ # services:
42
+ # destroy:
43
+ # success: "<%= human_name %> deleted successfully!"
44
+ #
45
+ # Then configure namespace: messages_namespace :<%= plural_table_name %>
36
46
  respond_with do |data|
37
- success_result("<%= human_name %> deleted successfully", data)
47
+ success_result(message("destroy.success"), data)
38
48
  end
39
49
  end
40
50
  <% end -%>
@@ -2,6 +2,14 @@
2
2
 
3
3
  <% module_namespacing do -%>
4
4
  class <%= class_name %>::IndexService < BetterService::Services::IndexService
5
+ # Optional: Use a presenter to format response data
6
+ # Generate with: rails generate better_service:presenter <%= class_name %>
7
+ #
8
+ # presenter <%= class_name %>Presenter
9
+ # presenter_options do
10
+ # { current_user: user }
11
+ # end
12
+
5
13
  # Schema for validating params
6
14
  schema do
7
15
  optional(:page).filled(:integer, gteq?: 1)
@@ -36,8 +44,18 @@ class <%= class_name %>::IndexService < BetterService::Services::IndexService
36
44
  end
37
45
 
38
46
  # Phase 4: Respond - Format response (optional override)
47
+ # Uses I18n message helper with fallback to default messages
48
+ #
49
+ # To customize messages, create config/locales/<%= plural_table_name %>_services.en.yml:
50
+ # en:
51
+ # <%= plural_table_name %>:
52
+ # services:
53
+ # index:
54
+ # success: "<%= plural_table_name.titleize %> loaded successfully!"
55
+ #
56
+ # Then configure namespace: messages_namespace :<%= plural_table_name %>
39
57
  respond_with do |data|
40
- success_result("<%= plural_table_name.titleize %> loaded successfully", data)
58
+ success_result(message("index.success"), data)
41
59
  end
42
60
 
43
61
  # Phase 5: Viewer - UI configuration (optional)
@@ -2,6 +2,14 @@
2
2
 
3
3
  <% module_namespacing do -%>
4
4
  class <%= class_name %>::ShowService < BetterService::Services::ShowService
5
+ # Optional: Use a presenter to format response data
6
+ # Generate with: rails generate better_service:presenter <%= class_name %>
7
+ #
8
+ # presenter <%= class_name %>Presenter
9
+ # presenter_options do
10
+ # { current_user: user }
11
+ # end
12
+
5
13
  # Schema for validating params
6
14
  schema do
7
15
  required(:id).filled
@@ -18,8 +26,18 @@ class <%= class_name %>::ShowService < BetterService::Services::ShowService
18
26
  # end
19
27
 
20
28
  # Phase 4: Respond - Format response (optional override)
29
+ # Uses I18n message helper with fallback to default messages
30
+ #
31
+ # To customize messages, create config/locales/<%= plural_table_name %>_services.en.yml:
32
+ # en:
33
+ # <%= plural_table_name %>:
34
+ # services:
35
+ # show:
36
+ # success: "<%= human_name %> loaded successfully!"
37
+ #
38
+ # Then configure namespace: messages_namespace :<%= plural_table_name %>
21
39
  respond_with do |data|
22
- success_result("<%= human_name %> loaded successfully", data)
40
+ success_result(message("show.success"), data)
23
41
  end
24
42
 
25
43
  # Phase 5: Viewer - UI configuration (optional)
@@ -43,8 +43,18 @@ class <%= class_name %>::UpdateService < BetterService::Services::UpdateService
43
43
  end
44
44
 
45
45
  # Phase 4: Respond - Format response (optional override)
46
+ # Uses I18n message helper with fallback to default messages
47
+ #
48
+ # To customize messages, create config/locales/<%= plural_table_name %>_services.en.yml:
49
+ # en:
50
+ # <%= plural_table_name %>:
51
+ # services:
52
+ # update:
53
+ # success: "<%= human_name %> updated successfully!"
54
+ #
55
+ # Then configure namespace: messages_namespace :<%= plural_table_name %>
46
56
  respond_with do |data|
47
- success_result("<%= human_name %> updated successfully", data)
57
+ success_result(message("update.success"), data)
48
58
  end
49
59
  end
50
60
  <% end -%>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - alessiobussolari
@@ -77,6 +77,7 @@ files:
77
77
  - MIT-LICENSE
78
78
  - README.md
79
79
  - Rakefile
80
+ - config/locales/better_service.en.yml
80
81
  - lib/better_service.rb
81
82
  - lib/better_service/cache_service.rb
82
83
  - lib/better_service/concerns/instrumentation.rb
@@ -114,6 +115,7 @@ files:
114
115
  - lib/better_service/errors/workflowable/runtime/step_execution_error.rb
115
116
  - lib/better_service/errors/workflowable/runtime/workflow_execution_error.rb
116
117
  - lib/better_service/errors/workflowable/runtime/workflow_runtime_error.rb
118
+ - lib/better_service/presenter.rb
117
119
  - lib/better_service/railtie.rb
118
120
  - lib/better_service/services/action_service.rb
119
121
  - lib/better_service/services/base.rb
@@ -131,6 +133,13 @@ files:
131
133
  - lib/better_service/workflows/result_builder.rb
132
134
  - lib/better_service/workflows/rollback_support.rb
133
135
  - lib/better_service/workflows/transaction_support.rb
136
+ - lib/generators/better_service/install_generator.rb
137
+ - lib/generators/better_service/locale_generator.rb
138
+ - lib/generators/better_service/presenter_generator.rb
139
+ - lib/generators/better_service/templates/better_service_initializer.rb.tt
140
+ - lib/generators/better_service/templates/locale.en.yml.tt
141
+ - lib/generators/better_service/templates/presenter.rb.tt
142
+ - lib/generators/better_service/templates/presenter_test.rb.tt
134
143
  - lib/generators/serviceable/action_generator.rb
135
144
  - lib/generators/serviceable/create_generator.rb
136
145
  - lib/generators/serviceable/destroy_generator.rb