cyrax 0.5.1.beta5 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/cyrax/extensions/has_response.rb +6 -4
- data/lib/cyrax/extensions/has_service.rb +23 -6
- data/lib/cyrax/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjFlNjRkMDcxZjQ4NDZhNjA1YzllYTczNzU0YjUyM2NiMThkMDIwYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjcwMjAwMWFkM2U3MmI2ZWU1NGExNjE5MDRiNmQ0MDg3YTM3MzM5Nw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZGNlMDIwYzVmMTZjMzEwMzMwNTU5OGQ0YTY5YjZmMDczMGExZjg3ZWEzY2Fl
|
10
|
+
M2E0ODIyMDAyODc3NTY1ODQwMTc5MGMzODdhYjNmMzljMGY0YzU5YTVhMDBh
|
11
|
+
MmE4MmUwMDllMTg3ZWM1ZDBkMzkwNTEzYWU5NTE3N2Y3NjNhNGE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODkxM2RmNWQ4ZGZlZGNjNWYwZDEwN2FkOTJmY2RhNDhkNTVjOTk3M2VkODRk
|
14
|
+
OGQxNDFjMzJmZjI3NzdlM2Y0ZjBmNGY2MDk5YTA5MjBkYWU0ZTZlOTBjMDkx
|
15
|
+
MjI2MTZhODExNDFmYjg0MGUxYjNkZWU0ZWI5YWM2OTVhNzVlNWU=
|
@@ -35,10 +35,12 @@ module Cyrax::Extensions
|
|
35
35
|
|
36
36
|
def sync_errors_with(model)
|
37
37
|
model = model.to_model if model.respond_to?(:to_model)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
return unless model
|
39
|
+
(@_errors || {}).each do |key, value|
|
40
|
+
next unless model.respond_to?(key)
|
41
|
+
model.errors.add key, value unless model.errors.include?(key)
|
42
|
+
end
|
43
|
+
if model.errors.messages.present?
|
42
44
|
model.errors.messages.each do |key, value|
|
43
45
|
add_error key, value
|
44
46
|
end
|
@@ -4,19 +4,24 @@ module Cyrax::Extensions
|
|
4
4
|
|
5
5
|
# Builds and returns a collection response for Rails
|
6
6
|
# @return [Cyrax::Response] response
|
7
|
-
def
|
8
|
-
|
7
|
+
def read_all(&block)
|
8
|
+
authorize_resource!(:read_all, resource_class)
|
9
|
+
collection = build_collection
|
10
|
+
block.call(collection) if block_given?
|
11
|
+
respond_with collection, name: collection_name, present: :collection
|
9
12
|
end
|
10
13
|
# Overrides collection with read_all
|
11
|
-
alias_method :read_all
|
12
|
-
alias_method :read_all!, :collection
|
14
|
+
alias_method :read_all!, :read_all
|
13
15
|
|
14
16
|
# Builds a new resource without saving to DB
|
15
17
|
# Runs Model.new (before saving)
|
16
18
|
# Used for :new action in controller
|
17
19
|
# @return [Cyrax::Response] response
|
18
|
-
def build
|
19
|
-
|
20
|
+
def build(&block)
|
21
|
+
resource = build_resource(nil)
|
22
|
+
authorize_resource!(:build, resource)
|
23
|
+
block.call(resource) if block_given?
|
24
|
+
respond_with resource
|
20
25
|
end
|
21
26
|
alias_method :build!, :build
|
22
27
|
|
@@ -25,6 +30,7 @@ module Cyrax::Extensions
|
|
25
30
|
# @return [Cyrax::Response] response
|
26
31
|
def create(custom_attributes = nil, &block)
|
27
32
|
resource = build_resource(nil, custom_attributes||resource_attributes)
|
33
|
+
authorize_resource!(:create, resource)
|
28
34
|
transaction do
|
29
35
|
if save_resource(resource)
|
30
36
|
set_message(:created)
|
@@ -52,6 +58,7 @@ module Cyrax::Extensions
|
|
52
58
|
# @return [Cyrax::Response] response
|
53
59
|
def update(custom_attributes = nil, &block)
|
54
60
|
resource = build_resource(resource_params_id, custom_attributes||resource_attributes)
|
61
|
+
authorize_resource!(:update, resource)
|
55
62
|
transaction do
|
56
63
|
if save_resource(resource)
|
57
64
|
set_message(:updated)
|
@@ -67,6 +74,7 @@ module Cyrax::Extensions
|
|
67
74
|
# @return [Cyrax::Response] response
|
68
75
|
def destroy(&block)
|
69
76
|
resource = find_resource(resource_params_id)
|
77
|
+
authorize_resource!(:destroy, resource)
|
70
78
|
transaction do
|
71
79
|
delete_resource(resource)
|
72
80
|
block.call(resource) if block_given?
|
@@ -109,6 +117,15 @@ module Cyrax::Extensions
|
|
109
117
|
resource.destroy
|
110
118
|
end
|
111
119
|
|
120
|
+
# Authorize a resource
|
121
|
+
# Should be called on each service method and should be implemented on each resource.
|
122
|
+
# Implementation may raise an exception which may be handled by controller.
|
123
|
+
# @param action [Symbol] The action to authorize
|
124
|
+
# @param resource [object] The resource to authorize
|
125
|
+
def authorize_resource!(action, resource)
|
126
|
+
# raise AuthorizationError
|
127
|
+
end
|
128
|
+
|
112
129
|
# Returns a collection of the resource we are calling.
|
113
130
|
#
|
114
131
|
# If you want your resource to return something interesting, you should override the resource_scope method.
|
data/lib/cyrax/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cyrax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Droidlabs
|
@@ -132,9 +132,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
132
|
version: '0'
|
133
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
|
-
- - ! '
|
135
|
+
- - ! '>='
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
137
|
+
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
140
|
rubygems_version: 2.0.5
|