application_service 0.3.0 → 0.4.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -0
- data/.ruby-version +1 -1
- data/.travis.yml +9 -0
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/application_service.gemspec +8 -4
- data/lib/application_service.rb +12 -15
- data/spec/application_service_spec.rb +10 -2
- data/spec/spec_helper.rb +2 -2
- metadata +22 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8f6fcf621468775e24be24281197c8e247de5ac87b2dcc57711880b368b6b00
|
4
|
+
data.tar.gz: 2916bad018667a7d9cb04b6c9e94a8f712434d7b9cb3bd8ab2b27420a3f5b59a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 246018e2846dae816ac311825c5d5a5e8867bf010fad635d3b852508c63a6ebf419893e0d2ab3cde248e2532bffccf7801268577de040d2f474bc2b9dd86694c
|
7
|
+
data.tar.gz: ce54981d596afff4f2e5d664083f7b530707640d1fba7ead3ee3c2161a0d3315562e61928fcf0c502fb39a4c57b214159acd223651684787f1203b08e0329f32
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
AllCops:
|
2
|
+
DisabledByDefault: true
|
3
|
+
|
4
|
+
Security:
|
5
|
+
Enabled: true
|
6
|
+
|
7
|
+
Bundler/DuplicatedGem:
|
8
|
+
Enabled: true
|
9
|
+
Bundler/InsecureProtocolSource:
|
10
|
+
Enabled: true
|
11
|
+
Layout/IndentationStyle:
|
12
|
+
Enabled: true
|
13
|
+
Layout/SpaceInsideRangeLiteral:
|
14
|
+
Enabled: true
|
15
|
+
Lint:
|
16
|
+
Enabled: true
|
17
|
+
Lint/RaiseException:
|
18
|
+
Enabled: true
|
19
|
+
Naming/AsciiIdentifiers:
|
20
|
+
Enabled: true
|
21
|
+
Naming/ClassAndModuleCamelCase:
|
22
|
+
Enabled: true
|
23
|
+
Naming/ConstantName:
|
24
|
+
Enabled: true
|
25
|
+
Naming/FileName:
|
26
|
+
Enabled: true
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.3
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/application_service.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: application_service 0.
|
5
|
+
# stub: application_service 0.4.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "application_service".freeze
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.4.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Nathan Woodhull".freeze]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2021-05-20"
|
15
15
|
s.description = "A service layer scaffold for rails apps extracted from Agra".freeze
|
16
16
|
s.email = "woodhull@gmail.com".freeze
|
17
17
|
s.extra_rdoc_files = [
|
@@ -21,8 +21,10 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.files = [
|
22
22
|
".document",
|
23
23
|
".rspec",
|
24
|
+
".rubocop.yml",
|
24
25
|
".ruby-gemset",
|
25
26
|
".ruby-version",
|
27
|
+
".travis.yml",
|
26
28
|
"Gemfile",
|
27
29
|
"LICENSE.txt",
|
28
30
|
"README.rdoc",
|
@@ -35,7 +37,7 @@ Gem::Specification.new do |s|
|
|
35
37
|
]
|
36
38
|
s.homepage = "http://github.com/woodhull/application_service".freeze
|
37
39
|
s.licenses = ["MIT".freeze]
|
38
|
-
s.rubygems_version = "3.1.
|
40
|
+
s.rubygems_version = "3.1.6".freeze
|
39
41
|
s.summary = "Service Layer Scaffold".freeze
|
40
42
|
|
41
43
|
if s.respond_to? :specification_version then
|
@@ -45,10 +47,12 @@ Gem::Specification.new do |s|
|
|
45
47
|
if s.respond_to? :add_runtime_dependency then
|
46
48
|
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 5.0.0.1", "< 7.0"])
|
47
49
|
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5"])
|
50
|
+
s.add_development_dependency(%q<rubocop>.freeze, ["~> 1.15"])
|
48
51
|
s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.2", ">= 2.2.1"])
|
49
52
|
else
|
50
53
|
s.add_dependency(%q<activesupport>.freeze, [">= 5.0.0.1", "< 7.0"])
|
51
54
|
s.add_dependency(%q<rspec>.freeze, ["~> 3.5"])
|
55
|
+
s.add_dependency(%q<rubocop>.freeze, ["~> 1.15"])
|
52
56
|
s.add_dependency(%q<jeweler>.freeze, ["~> 2.2", ">= 2.2.1"])
|
53
57
|
end
|
54
58
|
end
|
data/lib/application_service.rb
CHANGED
@@ -3,7 +3,7 @@ require 'active_support/all'
|
|
3
3
|
class ApplicationService
|
4
4
|
|
5
5
|
include ActiveSupport::Callbacks
|
6
|
-
define_callbacks :save, :create, :update, :destroy, {terminator: ->(
|
6
|
+
define_callbacks :save, :create, :update, :destroy, {terminator: ->(_target, result) { result.call == false }, skip_after_callbacks_if_terminated: true}
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
end
|
@@ -67,16 +67,16 @@ class ApplicationService
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
def update_attributes(obj, params)
|
70
|
+
def update_attributes(obj, params, with_admin_save: false)
|
71
71
|
@obj = obj
|
72
72
|
@obj.assign_attributes(params)
|
73
73
|
|
74
74
|
yield if block_given?
|
75
75
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
76
|
+
if with_admin_save
|
77
|
+
self.admin_save(obj)
|
78
|
+
else
|
79
|
+
self.save(obj)
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
@@ -104,6 +104,12 @@ class ApplicationService
|
|
104
104
|
@on_admin_save = false
|
105
105
|
end
|
106
106
|
|
107
|
+
def self.extract_callback_options(args)
|
108
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
109
|
+
|
110
|
+
options
|
111
|
+
end
|
112
|
+
|
107
113
|
private
|
108
114
|
|
109
115
|
def create!(save_method=:save!)
|
@@ -129,13 +135,4 @@ class ApplicationService
|
|
129
135
|
@obj.send(save_method)
|
130
136
|
end
|
131
137
|
end
|
132
|
-
|
133
|
-
private
|
134
|
-
|
135
|
-
def self.extract_callback_options(args)
|
136
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
137
|
-
|
138
|
-
options
|
139
|
-
end
|
140
|
-
|
141
138
|
end
|
@@ -71,13 +71,21 @@ describe ApplicationService do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
describe "#update_attributes" do
|
74
|
+
let(:obj) { double(new_record?: false) }
|
75
|
+
|
74
76
|
it "should trigger update" do
|
75
|
-
obj
|
76
|
-
expect(obj).to receive(:assign_attributes).with( {:foo => 'bar'}).and_return(:true)
|
77
|
+
expect(obj).to receive(:assign_attributes).with( {:foo => 'bar'}).and_return(true)
|
77
78
|
expect(obj).to receive(:save)
|
78
79
|
|
79
80
|
subject.update_attributes(obj, {:foo => 'bar'})
|
80
81
|
end
|
82
|
+
|
83
|
+
it 'should trigger admin_save if argument is true' do
|
84
|
+
expect(obj).to receive(:assign_attributes).with( {:foo => 'bar'}).and_return(true)
|
85
|
+
expect(obj).to receive(:admin_save)
|
86
|
+
|
87
|
+
subject.update_attributes(obj, {:foo => 'bar'}, with_admin_save: true)
|
88
|
+
end
|
81
89
|
end
|
82
90
|
|
83
91
|
describe '#destroy' do
|
data/spec/spec_helper.rb
CHANGED
@@ -5,8 +5,8 @@ require 'application_service'
|
|
5
5
|
|
6
6
|
# Requires supporting files with custom matchers and macros, etc,
|
7
7
|
# in ./support/ and its subdirectories.
|
8
|
-
Dir[
|
8
|
+
Dir[File.join(File.dirname(__FILE__), 'support', '**', '*.rb')].sort.each { |f| require f }
|
9
9
|
|
10
10
|
RSpec.configure do |config|
|
11
|
-
|
11
|
+
|
12
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: application_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Woodhull
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -44,6 +44,20 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '3.5'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rubocop
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.15'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.15'
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
62
|
name: jeweler
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,8 +88,10 @@ extra_rdoc_files:
|
|
74
88
|
files:
|
75
89
|
- ".document"
|
76
90
|
- ".rspec"
|
91
|
+
- ".rubocop.yml"
|
77
92
|
- ".ruby-gemset"
|
78
93
|
- ".ruby-version"
|
94
|
+
- ".travis.yml"
|
79
95
|
- Gemfile
|
80
96
|
- LICENSE.txt
|
81
97
|
- README.rdoc
|
@@ -89,7 +105,7 @@ homepage: http://github.com/woodhull/application_service
|
|
89
105
|
licenses:
|
90
106
|
- MIT
|
91
107
|
metadata: {}
|
92
|
-
post_install_message:
|
108
|
+
post_install_message:
|
93
109
|
rdoc_options: []
|
94
110
|
require_paths:
|
95
111
|
- lib
|
@@ -104,8 +120,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
120
|
- !ruby/object:Gem::Version
|
105
121
|
version: '0'
|
106
122
|
requirements: []
|
107
|
-
rubygems_version: 3.1.
|
108
|
-
signing_key:
|
123
|
+
rubygems_version: 3.1.6
|
124
|
+
signing_key:
|
109
125
|
specification_version: 4
|
110
126
|
summary: Service Layer Scaffold
|
111
127
|
test_files: []
|