bbservices 0.0.1 → 0.1.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/lib/rails/create.rb +55 -0
- data/lib/rails/create_transactioned.rb +26 -0
- data/lib/rails/destroy.rb +0 -0
- data/lib/rails/new.rb +45 -0
- data/lib/rails/service.rb +13 -0
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '03479ca02ab6eaffed82c33de851d1ccdf9dba180bbdc714714d87d310a32fbc'
|
4
|
+
data.tar.gz: d6b34a3997176265f292a1ab7a506913b3847aca362480336fda7c564b1344bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb16aea144f7309b73fd3c39474af38be7ef273d0c48cc617ca76c3e164cab7ca0f900a38dfb73988b520cf7c37e16ed84baad7267b2d8111eaabd3084b3bcd5
|
7
|
+
data.tar.gz: 941725e415c5a6c7809494851af8e69a5ddd78f8965afbc148bad2f9454d28d3f459b355d0f33b94284d78b29bd8a9dd48b450e45bb61339bdda9a7475bff9af
|
data/lib/rails/create.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module BBServices
|
2
|
+
module Rails
|
3
|
+
|
4
|
+
##
|
5
|
+
# This class handles the creation of a resource with the purpose of being
|
6
|
+
# used in a 'create' controller action
|
7
|
+
class Create < New
|
8
|
+
|
9
|
+
protected
|
10
|
+
|
11
|
+
##
|
12
|
+
# Allows functionality to be added before the save of the object
|
13
|
+
def before_save
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# Saves the object. When overridden should save the @object to the database
|
19
|
+
def save
|
20
|
+
@successful = @object.save
|
21
|
+
@errors = @object.errors
|
22
|
+
end
|
23
|
+
|
24
|
+
def save!
|
25
|
+
@successful = @object.save!
|
26
|
+
end
|
27
|
+
|
28
|
+
def after_save(success)
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
##
|
33
|
+
# Runs the service. This involves calling internal_build, before_save,
|
34
|
+
# save, after_save
|
35
|
+
def run_service
|
36
|
+
internal_save {
|
37
|
+
save
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
def run_service!
|
42
|
+
internal_save {
|
43
|
+
save!
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
def internal_save
|
48
|
+
internal_build
|
49
|
+
before_save
|
50
|
+
yield
|
51
|
+
after_save(@successful)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module BBServices
|
2
|
+
module Rails
|
3
|
+
class CreateTransactioned < Create
|
4
|
+
|
5
|
+
##
|
6
|
+
#
|
7
|
+
def run_service
|
8
|
+
service_class.transaction {
|
9
|
+
internal_save {
|
10
|
+
save
|
11
|
+
}
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
##
|
16
|
+
#
|
17
|
+
def run_service!
|
18
|
+
service_class.transaction {
|
19
|
+
internal_save {
|
20
|
+
save!
|
21
|
+
}
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
File without changes
|
data/lib/rails/new.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
module BBServices
|
2
|
+
module Rails
|
3
|
+
|
4
|
+
##
|
5
|
+
# This class handles the building of a resource with the purpose of being
|
6
|
+
# used in a 'new' controller action
|
7
|
+
class New < Service
|
8
|
+
|
9
|
+
protected
|
10
|
+
|
11
|
+
def initialize_service
|
12
|
+
@object = service_class.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def before_build
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def build
|
20
|
+
if @params
|
21
|
+
@object.assign_attributes(@params)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def after_build
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def run_service
|
30
|
+
internal_build
|
31
|
+
@successful = true
|
32
|
+
end
|
33
|
+
|
34
|
+
def run_service!
|
35
|
+
run_service
|
36
|
+
end
|
37
|
+
|
38
|
+
def internal_build
|
39
|
+
before_build
|
40
|
+
build
|
41
|
+
after_build
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bbservices
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stuart Farnaby, Big Bear Studios
|
@@ -18,6 +18,11 @@ extra_rdoc_files: []
|
|
18
18
|
files:
|
19
19
|
- lib/base/service.rb
|
20
20
|
- lib/bbservices.rb
|
21
|
+
- lib/rails/create.rb
|
22
|
+
- lib/rails/create_transactioned.rb
|
23
|
+
- lib/rails/destroy.rb
|
24
|
+
- lib/rails/new.rb
|
25
|
+
- lib/rails/service.rb
|
21
26
|
homepage: https://gitlab.com/big-bear-studios-open-source/bbservices
|
22
27
|
licenses:
|
23
28
|
- MIT
|