rails_use_case 0.0.12 → 0.0.13

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: c46cd0289d56e4cf86a62f9e1dd780b5fe311c9f7426dfdb942cab5a1b8b8b74
4
- data.tar.gz: cd02462628e21a6fbda7bed59f237d0b1fdbf1a082d148747404ded5c2b0e365
3
+ metadata.gz: 0eb1a5ed5601e1c4e070962f4d19c2e35a4ea23980151fa35ec02c6328a2fd0d
4
+ data.tar.gz: 20821b8d657c535ee16ae2c920e1e93a8d0b21c384d99b25e5c986ff0914b0eb
5
5
  SHA512:
6
- metadata.gz: 6bd525db88d52a6b9563fed40b80e69d9bc035f115fa77ae6a5668688df7576d5426e4f8caba222986e741b4fa61c9790b75751b582913b009217089998fd8ac
7
- data.tar.gz: 2274ca1dfa0312c2bd9f1e2cc8245665bde540b30919c4eefe0875e3d0eba1a3609d2a55c4acac40849e8d237a20bd228ad6aabcaabac8f2c4c50f79cbd9e1bc
6
+ metadata.gz: 64c64c919a75d87bdea7a339fd9322c33b97a30b46bfa668a3eb970b3e542af9416176e5cc9783a0f133349648beb022983d66cafd30473f77708eb0de6a9963
7
+ data.tar.gz: 9f26874c317b868bd84c6232a2af3562bf54feddb4851552fbbccdc8294e38bdd2a89b420cdf387f623d1f5e361de9d24232a46b77d1dec13fb885a8bb1ab99d
data/README.md CHANGED
@@ -1,11 +1,13 @@
1
1
  # Rails Use Case gem
2
2
 
3
- Opinionated gem for UseCases and Services in Rails to keep your Models and Controllers slim.
3
+ This gem introduces UseCases and Services to Rails which allow you to keep your Models and Controllers slim.
4
4
 
5
5
  Read more: https://dev.to/phortx/pimp-your-rails-application-32d0
6
6
 
7
- The purpose of a UseCase is to contain reusable high level business logic which would normally be
8
- located in the controller. Examples are: Place an item in the cart, create a new user or delete a comment.
7
+ Clean Architecture suggests to put the business logic in UseCases which are classes, that contain reusable high
8
+ level business logic which otherwise would normally be located in the controller. UseCases are easy to read,
9
+ clean, reusable, testable and extendable.
10
+ Examples are: Place an item in the cart, create a new user or delete a comment.
9
11
 
10
12
  The purpose of a Service is to contain low level non-domain code like communication with a API,
11
13
  generating an export, upload via FTP or generating a PDF.
data/lib/rails/service.rb CHANGED
@@ -38,7 +38,7 @@ module Rails
38
38
  #
39
39
  # @raise [RuntimeError] When no service_name is given
40
40
  def initialize(service_name = nil)
41
- raise NotImplementedError if self.class == Service
41
+ raise NotImplementedError if instance_of?(Service)
42
42
  raise 'Please provide a service name!' if service_name.nil?
43
43
 
44
44
  @service_name = service_name
@@ -67,7 +67,7 @@ module Rails
67
67
  # Will setup the logger for logging to STDOUT. This can be useful for
68
68
  # Heroku for example.
69
69
  private def setup_stdout_logger
70
- @logger = Logger.new(STDOUT)
70
+ @logger = Logger.new($stdout)
71
71
 
72
72
  @logger.formatter = proc do |severity, datetime, progname, msg|
73
73
  "[#{@service_name}] #{msg}"
@@ -98,7 +98,7 @@ module Rails
98
98
  fail!(code: opts[:code], message: opts[:message]) if name == :failure
99
99
 
100
100
  # Run the lambda, when :do is set. Otherwise call the method.
101
- next if opts[:do] ? instance_eval(&opts[:do]) : send(name)
101
+ next if opts[:do] ? instance_exec(&opts[:do]) : send(name)
102
102
 
103
103
  # result is false, so we have a failure.
104
104
  fail! code: :step_false, message: "Step '#{name}' returned false"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_use_case
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Klein
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-06 00:00:00.000000000 Z
11
+ date: 2022-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -195,7 +195,7 @@ homepage: https://github.com/phortx/rails-use-case
195
195
  licenses:
196
196
  - MIT
197
197
  metadata: {}
198
- post_install_message:
198
+ post_install_message:
199
199
  rdoc_options: []
200
200
  require_paths:
201
201
  - lib
@@ -211,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
211
  version: '0'
212
212
  requirements: []
213
213
  rubygems_version: 3.1.2
214
- signing_key:
214
+ signing_key:
215
215
  specification_version: 4
216
216
  summary: Rails UseCase and Service classes
217
217
  test_files: []