ananke 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/sinatra/ananke.rb +5 -8
- data/lib/sinatra/version.rb +1 -1
- metadata +2 -2
data/lib/sinatra/ananke.rb
CHANGED
@@ -70,20 +70,18 @@ module Sinatra
|
|
70
70
|
app.helpers Ananke::Helpers
|
71
71
|
end
|
72
72
|
|
73
|
-
attr_reader :resource_name, :resource_id, :
|
73
|
+
attr_reader :resource_name, :resource_id, :resource_link_to, :resource_classes, :resource_mime, :resource_remove_empty
|
74
74
|
def resource_link_self?() @resource_link_self end
|
75
75
|
|
76
76
|
def make_resource(name, options = {})
|
77
77
|
reset!
|
78
78
|
options[:id] ||= :id
|
79
|
-
options[:items] ||= :items
|
80
79
|
options[:link_self] = options.has_key?(:link_self) ? options[:link_self] : true
|
81
80
|
options[:link_to] ||= []
|
82
81
|
options[:classes] ||= []
|
83
82
|
|
84
83
|
@resource_name = name
|
85
84
|
@resource_id = options[:id]
|
86
|
-
@resource_items = options[:items]
|
87
85
|
@resource_link_self = options[:link_self]
|
88
86
|
@resource_link_to = options[:link_to]
|
89
87
|
@resource_classes ||= []
|
@@ -123,24 +121,23 @@ module Sinatra
|
|
123
121
|
res = {
|
124
122
|
:name => resource_name,
|
125
123
|
:id => resource_id,
|
126
|
-
:items => resource_items,
|
127
124
|
:link_self => resource_link_self?,
|
128
125
|
:link_to => resource_link_to,
|
129
126
|
:classes => resource_classes,
|
130
127
|
:remove_empty => resource_remove_empty
|
131
128
|
}
|
132
129
|
block_params = block.parameters.collect {|p| p[1]}
|
133
|
-
path = "#{path}/:#{block_params[0]}" if [:get,:put,:delete].include?(type) && block_params.length
|
130
|
+
path = "#{path}/:#{block_params[0]}" if [:get,:put,:delete].include?(type) && block_params.length == 1 && path != ":#{block_params[0]}"
|
134
131
|
method(type).call "/#{resource_name}/#{path}", options, do
|
135
132
|
inject_app(res[:classes])
|
136
133
|
input_params = collect_input_params(params, &block)
|
137
134
|
|
138
135
|
result = instance_exec(*input_params, &block)
|
139
|
-
result = Serialize.
|
140
|
-
result = result
|
136
|
+
result = Serialize.to_h(result, :remove_empty => res[:remove_empty])
|
137
|
+
result = [result] unless result.respond_to? :each
|
141
138
|
|
142
139
|
#inject links
|
143
|
-
result[
|
140
|
+
(result.class == Array && result || [result]).each do |item|
|
144
141
|
next unless item.respond_to?(:has_key?) && item.has_key?(res[:id])
|
145
142
|
links = []
|
146
143
|
links << {:rel => :self, :href => "/#{res[:name]}/#{item[res[:id]]}"} if res[:link_self]
|
data/lib/sinatra/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ananke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.0.
|
5
|
+
version: 2.0.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Andries Coetzee
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-09-
|
13
|
+
date: 2011-09-14 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: colored
|