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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22aeb43995310deb16fea74f6252366b8ca9317fbbcbba4a11f14d6043c9ece5
4
- data.tar.gz: bb7f6388efc24fc4aa503979947572073a2971c81004484daedff1af7b12a903
3
+ metadata.gz: '03479ca02ab6eaffed82c33de851d1ccdf9dba180bbdc714714d87d310a32fbc'
4
+ data.tar.gz: d6b34a3997176265f292a1ab7a506913b3847aca362480336fda7c564b1344bf
5
5
  SHA512:
6
- metadata.gz: 021d855f30e314293d71a97ac2ff52cdf42cea8b1de756e40ecfa813c31c42a9ada46ceb81f133ebefd9d258fe495ac2f4bb65c31439885a60f6c30d96bec754
7
- data.tar.gz: 4c3f86baaa06b0b34e7c6d3b17b7ddf650539c15ca3f107c6082891701e3816299b9610b8a3458997c9cbd9d299784457323c89e507fca55545fd2ac63190195
6
+ metadata.gz: eb16aea144f7309b73fd3c39474af38be7ef273d0c48cc617ca76c3e164cab7ca0f900a38dfb73988b520cf7c37e16ed84baad7267b2d8111eaabd3084b3bcd5
7
+ data.tar.gz: 941725e415c5a6c7809494851af8e69a5ddd78f8965afbc148bad2f9454d28d3f459b355d0f33b94284d78b29bd8a9dd48b450e45bb61339bdda9a7475bff9af
@@ -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
@@ -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
@@ -0,0 +1,13 @@
1
+ module BBServices
2
+ module Rails
3
+
4
+ ##
5
+ # This class acts as the base class for all Rails / ActiveRecord variants
6
+ # of the Service Class
7
+ class Service < BBServices::Service
8
+ def resource
9
+ @object
10
+ end
11
+ end
12
+ end
13
+ 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.1
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