sinatra_resource 0.3.3 → 0.3.4
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.
- data/VERSION +1 -1
- data/lib/builder/action_definitions.rb +6 -6
- data/lib/builder/helpers.rb +21 -2
- data/sinatra_resource.gemspec +2 -2
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
@@ -33,7 +33,7 @@ module SinatraResource
|
|
33
33
|
def document_for_post(role, model, resource_config, leaf, parent_document, child_assoc)
|
34
34
|
check_permission(:create, role, resource_config)
|
35
35
|
check_params(:create, role, resource_config, leaf)
|
36
|
-
do_callback(:before_create, resource_config, nil)
|
36
|
+
do_callback(:before_create, resource_config, nil, parent_document)
|
37
37
|
document = if resource_config[:parent]
|
38
38
|
create_nested_document!(parent_document, child_assoc, model)
|
39
39
|
else
|
@@ -42,7 +42,7 @@ module SinatraResource
|
|
42
42
|
if resource_config[:parent]
|
43
43
|
make_related(parent_document, document, resource_config)
|
44
44
|
end
|
45
|
-
do_callback(:after_create, resource_config, document)
|
45
|
+
do_callback(:after_create, resource_config, document, parent_document)
|
46
46
|
document
|
47
47
|
end
|
48
48
|
|
@@ -57,13 +57,13 @@ module SinatraResource
|
|
57
57
|
else
|
58
58
|
find_document!(model, id)
|
59
59
|
end
|
60
|
-
do_callback(:before_update, resource_config, document)
|
60
|
+
do_callback(:before_update, resource_config, document, parent_document)
|
61
61
|
document = if resource_config[:parent]
|
62
62
|
update_nested_document!(parent_document, child_assoc, model, id)
|
63
63
|
else
|
64
64
|
update_document!(model, id)
|
65
65
|
end
|
66
|
-
do_callback(:after_update, resource_config, document)
|
66
|
+
do_callback(:after_update, resource_config, document, parent_document)
|
67
67
|
document
|
68
68
|
end
|
69
69
|
|
@@ -78,13 +78,13 @@ module SinatraResource
|
|
78
78
|
else
|
79
79
|
find_document!(model, id)
|
80
80
|
end
|
81
|
-
do_callback(:before_destroy, resource_config, document)
|
81
|
+
do_callback(:before_destroy, resource_config, document, parent_document)
|
82
82
|
document = if resource_config[:parent]
|
83
83
|
delete_nested_document!(parent_document, child_assoc, model, id)
|
84
84
|
else
|
85
85
|
delete_document!(model, id)
|
86
86
|
end
|
87
|
-
do_callback(:after_destroy, resource_config, document)
|
87
|
+
do_callback(:after_destroy, resource_config, document, parent_document)
|
88
88
|
document
|
89
89
|
end
|
90
90
|
|
data/lib/builder/helpers.rb
CHANGED
@@ -122,11 +122,30 @@ module SinatraResource
|
|
122
122
|
convert(object)
|
123
123
|
end
|
124
124
|
|
125
|
-
|
125
|
+
# Execute a callback.
|
126
|
+
#
|
127
|
+
# @param [Symbol] name
|
128
|
+
# Valid values include:
|
129
|
+
# * :before_create, :before_update, :before_destroy
|
130
|
+
# * :after_create, :after_update, :after_destroy
|
131
|
+
#
|
132
|
+
# @param [Hash] resource_config
|
133
|
+
#
|
134
|
+
# @param [MongoMapper::Document, nil] document
|
135
|
+
#
|
136
|
+
# @param [MongoMapper::Document, nil] parent_document
|
137
|
+
#
|
138
|
+
# @return [undefined]
|
139
|
+
def do_callback(name, resource_config, document, parent_document)
|
126
140
|
proc = resource_config[:callbacks][name]
|
127
141
|
return unless proc
|
128
|
-
|
142
|
+
|
143
|
+
if document && parent_document
|
144
|
+
proc.call(self, document, parent_document)
|
145
|
+
elsif document
|
129
146
|
proc.call(self, document)
|
147
|
+
elsif parent_document
|
148
|
+
proc.call(self, parent_document)
|
130
149
|
else
|
131
150
|
proc.call(self)
|
132
151
|
end
|
data/sinatra_resource.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sinatra_resource}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["David James"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-30}
|
13
13
|
s.description = %q{A DSL for creating RESTful actions with Sinatra and MongoMapper. It embraces the Resource Oriented Architecture as explained by Leonard Richardson and Sam Ruby.}
|
14
14
|
s.email = %q{djames@sunlightfoundation.com}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David James
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-30 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|