rabl 0.2.7 → 0.2.8
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/README.md +1 -0
- data/lib/rabl.rb +1 -2
- data/lib/rabl/engine.rb +5 -0
- data/lib/rabl/helpers.rb +1 -1
- data/lib/rabl/railtie.rb +10 -0
- data/lib/rabl/template.rb +15 -12
- data/lib/rabl/version.rb +1 -1
- data/rabl.gemspec +1 -0
- data/test/configuration_test.rb +29 -0
- data/test/engine_test.rb +311 -1
- data/test/template_test.rb +66 -0
- data/test/teststrap.rb +1 -0
- metadata +17 -3
data/README.md
CHANGED
@@ -326,6 +326,7 @@ Thanks to [Miso](http://gomiso.com) for allowing me to create this for our appli
|
|
326
326
|
* [Tim Lee](https://github.com/timothy1ee) - RABL is an awesome name and was chosen by the Miso CTO.
|
327
327
|
* [Rick Thomas](https://github.com/rickthomasjr) - Added options passing for extends and Sinatra testing
|
328
328
|
* [Marjun](https://github.com/mpagalan) - Added xml option configurations
|
329
|
+
* [Chris Kimpton](https://github.com/kimptoc) - Helping with documentation and wiki
|
329
330
|
|
330
331
|
More to come hopefully! Please fork and contribute, any help is appreciated!
|
331
332
|
|
data/lib/rabl.rb
CHANGED
@@ -3,6 +3,7 @@ require 'rabl/helpers'
|
|
3
3
|
require 'rabl/engine'
|
4
4
|
require 'rabl/builder'
|
5
5
|
require 'rabl/configuration'
|
6
|
+
require 'rabl/railtie' if defined?(Rails) && Rails.version =~ /^3/
|
6
7
|
|
7
8
|
# Rabl.register!
|
8
9
|
module Rabl
|
@@ -34,6 +35,4 @@ if defined?(Padrino)
|
|
34
35
|
Padrino.after_load { Rabl.register! }
|
35
36
|
elsif defined?(Rails) && Rails.version =~ /^2/
|
36
37
|
Rabl.register!
|
37
|
-
elsif defined?(Rails) && Rails.version =~ /^3/
|
38
|
-
Rabl.register!
|
39
38
|
end
|
data/lib/rabl/engine.rb
CHANGED
@@ -162,5 +162,10 @@ module Rabl
|
|
162
162
|
def method_missing(name, *args, &block)
|
163
163
|
@_scope.respond_to?(name) ? @_scope.send(name, *args, &block) : super
|
164
164
|
end
|
165
|
+
|
166
|
+
def copy_instance_variables_from(object, exclude = []) #:nodoc:
|
167
|
+
vars = object.instance_variables.map(&:to_s) - exclude.map(&:to_s)
|
168
|
+
vars.each { |name| instance_variable_set(name, object.instance_variable_get(name)) }
|
169
|
+
end
|
165
170
|
end
|
166
171
|
end
|
data/lib/rabl/helpers.rb
CHANGED
@@ -4,7 +4,7 @@ module Rabl
|
|
4
4
|
# data_object(@user => :person) => @user
|
5
5
|
# data_object(:user => :person) => @_object.send(:user)
|
6
6
|
def data_object(data)
|
7
|
-
data = (data.is_a?(Hash) && data.keys.
|
7
|
+
data = (data.is_a?(Hash) && data.keys.size == 1) ? data.keys.first : data
|
8
8
|
data.is_a?(Symbol) && @_object ? @_object.send(data) : data
|
9
9
|
end
|
10
10
|
|
data/lib/rabl/railtie.rb
ADDED
data/lib/rabl/template.rb
CHANGED
@@ -42,23 +42,26 @@ end
|
|
42
42
|
|
43
43
|
# Rails 3.X Template
|
44
44
|
if defined?(Rails) && Rails.version =~ /^3/
|
45
|
-
require 'action_view/base'
|
46
|
-
require 'action_view/template'
|
47
|
-
|
48
45
|
module ActionView
|
49
46
|
module Template::Handlers
|
50
|
-
class
|
51
|
-
include Compilable
|
47
|
+
class Rabl
|
52
48
|
|
49
|
+
class_attribute :default_format
|
53
50
|
self.default_format = Mime::JSON
|
54
51
|
|
55
|
-
def
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
52
|
+
def self.call(template)
|
53
|
+
source = if template.source.empty?
|
54
|
+
File.read(template.identifier)
|
55
|
+
else # use source
|
56
|
+
template.source
|
57
|
+
end
|
58
|
+
|
59
|
+
%{ ::Rabl::Engine.new(#{source.inspect}).
|
60
|
+
render(self, assigns.merge(local_assigns)) }
|
61
|
+
end # call
|
62
|
+
end # rabl class
|
63
|
+
end # handlers
|
61
64
|
end
|
62
65
|
|
63
|
-
ActionView::Template.register_template_handler :rabl, ActionView::TemplateHandlers::
|
66
|
+
ActionView::Template.register_template_handler :rabl, ActionView::TemplateHandlers::Rabl
|
64
67
|
end
|
data/lib/rabl/version.rb
CHANGED
data/rabl.gemspec
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path('../teststrap', __FILE__)
|
2
|
+
require File.expand_path('../../lib/rabl', __FILE__)
|
3
|
+
|
4
|
+
context "Rabl::Configuration" do
|
5
|
+
|
6
|
+
context "with defaults" do
|
7
|
+
setup { Rabl.configuration }
|
8
|
+
|
9
|
+
asserts(:include_json_root).equals true
|
10
|
+
asserts(:include_xml_root).equals false
|
11
|
+
asserts(:enable_json_callbacks).equals false
|
12
|
+
end
|
13
|
+
|
14
|
+
context "with configuration" do
|
15
|
+
setup do
|
16
|
+
Rabl.configure do |config|
|
17
|
+
config.include_json_root = false
|
18
|
+
config.include_xml_root = true
|
19
|
+
config.enable_json_callbacks = true
|
20
|
+
end
|
21
|
+
Rabl.configuration
|
22
|
+
end
|
23
|
+
|
24
|
+
asserts(:include_json_root).equals false
|
25
|
+
asserts(:include_xml_root).equals true
|
26
|
+
asserts(:enable_json_callbacks).equals true
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/test/engine_test.rb
CHANGED
@@ -1,2 +1,312 @@
|
|
1
|
-
require File.expand_path('../teststrap',__FILE__)
|
1
|
+
require File.expand_path('../teststrap', __FILE__)
|
2
|
+
require File.expand_path('../../lib/rabl', __FILE__)
|
3
|
+
require File.expand_path('../../lib/rabl/template', __FILE__)
|
4
|
+
require File.expand_path('../models/user', __FILE__)
|
2
5
|
|
6
|
+
context "Rabl::Engine" do
|
7
|
+
|
8
|
+
helper(:rabl) { |t| RablTemplate.new { t } }
|
9
|
+
|
10
|
+
context "#initialize" do
|
11
|
+
setup do
|
12
|
+
Rabl::Engine.new("...source...", { :format => 'xml', :root => true, :view_path => '/path/to/views' })
|
13
|
+
end
|
14
|
+
|
15
|
+
asserts_topic.assigns :_source
|
16
|
+
asserts_topic.assigns :_options
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
context "with defaults" do
|
21
|
+
setup do
|
22
|
+
Rabl.configure do |config|
|
23
|
+
config.include_json_root = true
|
24
|
+
config.include_xml_root = false
|
25
|
+
config.enable_json_callbacks = false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "#object" do
|
30
|
+
|
31
|
+
asserts "that it sets data source" do
|
32
|
+
template = rabl %q{
|
33
|
+
object @user
|
34
|
+
}
|
35
|
+
scope = Object.new
|
36
|
+
scope.instance_variable_set :@user, User.new
|
37
|
+
template.render(scope)
|
38
|
+
end.matches "{\"user\":{}}"
|
39
|
+
|
40
|
+
asserts "that it can set root node" do
|
41
|
+
template = rabl %q{
|
42
|
+
object @user => :person
|
43
|
+
}
|
44
|
+
scope = Object.new
|
45
|
+
scope.instance_variable_set :@user, User.new
|
46
|
+
template.render(scope)
|
47
|
+
end.equals "{\"person\":{}}"
|
48
|
+
end
|
49
|
+
|
50
|
+
context "#collection" do
|
51
|
+
|
52
|
+
asserts "that it sets object to be casted as a simple array" do
|
53
|
+
template = rabl %{
|
54
|
+
collection @users
|
55
|
+
}
|
56
|
+
scope = Object.new
|
57
|
+
scope.instance_variable_set :@users, [User.new, User.new]
|
58
|
+
template.render(scope)
|
59
|
+
end.equals "[{\"user\":{}},{\"user\":{}}]"
|
60
|
+
|
61
|
+
asserts "that it sets root node for objects" do
|
62
|
+
template = rabl %{
|
63
|
+
collection @users => :person
|
64
|
+
}
|
65
|
+
scope = Object.new
|
66
|
+
scope.instance_variable_set :@users, [User.new, User.new]
|
67
|
+
template.render(scope)
|
68
|
+
end.equals "{\"person\":[{\"person\":{}},{\"person\":{}}]}"
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
context "#attribute" do
|
73
|
+
|
74
|
+
asserts "that it adds an attribute or method to be included in output" do
|
75
|
+
template = rabl %{
|
76
|
+
object @user
|
77
|
+
attribute :name
|
78
|
+
}
|
79
|
+
scope = Object.new
|
80
|
+
scope.instance_variable_set :@user, User.new(:name => 'irvine')
|
81
|
+
template.render(scope)
|
82
|
+
end.equals "{\"user\":{\"name\":\"irvine\"}}"
|
83
|
+
|
84
|
+
asserts "that it can add attribute under a different key name through :as" do
|
85
|
+
template = rabl %{
|
86
|
+
object @user
|
87
|
+
attribute :name, :as => 'city'
|
88
|
+
}
|
89
|
+
scope = Object.new
|
90
|
+
scope.instance_variable_set :@user, User.new(:name => 'irvine')
|
91
|
+
template.render(scope)
|
92
|
+
end.equals "{\"user\":{\"city\":\"irvine\"}}"
|
93
|
+
|
94
|
+
asserts "that it can add attribute under a different key name through hash" do
|
95
|
+
template = rabl %{
|
96
|
+
object @user
|
97
|
+
attribute :name => :city
|
98
|
+
}
|
99
|
+
scope = Object.new
|
100
|
+
scope.instance_variable_set :@user, User.new(:name => 'irvine')
|
101
|
+
template.render(scope)
|
102
|
+
end.equals "{\"user\":{\"city\":\"irvine\"}}"
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
context "#code" do
|
107
|
+
|
108
|
+
asserts "that it can create an arbitraty code node" do
|
109
|
+
template = rabl %{
|
110
|
+
code(:foo) { 'bar' }
|
111
|
+
}
|
112
|
+
template.render(Object.new)
|
113
|
+
end.equals "{\"foo\":\"bar\"}"
|
114
|
+
|
115
|
+
asserts "that it can be passed conditionals" do
|
116
|
+
template = rabl %{
|
117
|
+
code(:foo, :if => lambda { |i| false }) { 'bar' }
|
118
|
+
}
|
119
|
+
template.render(Object.new)
|
120
|
+
end.equals "{}"
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
context "#child" do
|
125
|
+
|
126
|
+
asserts "that it can create a child node" do
|
127
|
+
template = rabl %{
|
128
|
+
object @user
|
129
|
+
attribute :name
|
130
|
+
child(@user) { attribute :city }
|
131
|
+
}
|
132
|
+
scope = Object.new
|
133
|
+
scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
|
134
|
+
template.render(scope)
|
135
|
+
end.equals "{\"user\":{\"name\":\"leo\",\"user\":{\"city\":\"LA\"}}}"
|
136
|
+
|
137
|
+
asserts "that it can create a child node with different key" do
|
138
|
+
template = rabl %{
|
139
|
+
object @user
|
140
|
+
attribute :name
|
141
|
+
child(@user => :person) { attribute :city }
|
142
|
+
}
|
143
|
+
scope = Object.new
|
144
|
+
scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
|
145
|
+
template.render(scope)
|
146
|
+
|
147
|
+
end.equals "{\"user\":{\"name\":\"leo\",\"person\":{\"city\":\"LA\"}}}"
|
148
|
+
end
|
149
|
+
|
150
|
+
context "#glue" do
|
151
|
+
|
152
|
+
asserts "that it glues data from a child node" do
|
153
|
+
template = rabl %{
|
154
|
+
object @user
|
155
|
+
attribute :name
|
156
|
+
glue(@user) { attribute :city }
|
157
|
+
glue(@user) { attribute :age }
|
158
|
+
}
|
159
|
+
scope = Object.new
|
160
|
+
scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :age => 12)
|
161
|
+
template.render(scope)
|
162
|
+
end.equals "{\"user\":{\"name\":\"leo\",\"city\":\"LA\",\"age\":12}}"
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
|
167
|
+
context "without json root" do
|
168
|
+
setup do
|
169
|
+
Rabl.configure do |config|
|
170
|
+
config.include_json_root = false
|
171
|
+
config.include_xml_root = false
|
172
|
+
config.enable_json_callbacks = false
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
context "#object" do
|
177
|
+
|
178
|
+
asserts "that it sets data source" do
|
179
|
+
template = rabl %q{
|
180
|
+
object @user
|
181
|
+
}
|
182
|
+
scope = Object.new
|
183
|
+
scope.instance_variable_set :@user, User.new
|
184
|
+
template.render(scope)
|
185
|
+
end.matches "{}"
|
186
|
+
|
187
|
+
asserts "that it can set root node" do
|
188
|
+
template = rabl %q{
|
189
|
+
object @user => :person
|
190
|
+
}
|
191
|
+
scope = Object.new
|
192
|
+
scope.instance_variable_set :@user, User.new
|
193
|
+
template.render(scope)
|
194
|
+
end.equals "{}"
|
195
|
+
end
|
196
|
+
|
197
|
+
context "#collection" do
|
198
|
+
|
199
|
+
asserts "that it sets object to be casted as a simple array" do
|
200
|
+
template = rabl %{
|
201
|
+
collection @users
|
202
|
+
}
|
203
|
+
scope = Object.new
|
204
|
+
scope.instance_variable_set :@users, [User.new, User.new]
|
205
|
+
template.render(scope)
|
206
|
+
end.equals "[{},{}]"
|
207
|
+
|
208
|
+
asserts "that it sets root node for objects" do
|
209
|
+
template = rabl %{
|
210
|
+
collection @users => :person
|
211
|
+
}
|
212
|
+
scope = Object.new
|
213
|
+
scope.instance_variable_set :@users, [User.new, User.new]
|
214
|
+
template.render(scope)
|
215
|
+
end.equals "{\"person\":[{},{}]}"
|
216
|
+
|
217
|
+
end
|
218
|
+
|
219
|
+
context "#attribute" do
|
220
|
+
|
221
|
+
asserts "that it adds an attribute or method to be included in output" do
|
222
|
+
template = rabl %{
|
223
|
+
object @user
|
224
|
+
attribute :name
|
225
|
+
}
|
226
|
+
scope = Object.new
|
227
|
+
scope.instance_variable_set :@user, User.new(:name => 'irvine')
|
228
|
+
template.render(scope)
|
229
|
+
end.equals "{\"name\":\"irvine\"}"
|
230
|
+
|
231
|
+
asserts "that it can add attribute under a different key name through :as" do
|
232
|
+
template = rabl %{
|
233
|
+
object @user
|
234
|
+
attribute :name, :as => 'city'
|
235
|
+
}
|
236
|
+
scope = Object.new
|
237
|
+
scope.instance_variable_set :@user, User.new(:name => 'irvine')
|
238
|
+
template.render(scope)
|
239
|
+
end.equals "{\"city\":\"irvine\"}"
|
240
|
+
|
241
|
+
asserts "that it can add attribute under a different key name through hash" do
|
242
|
+
template = rabl %{
|
243
|
+
object @user
|
244
|
+
attribute :name => :city
|
245
|
+
}
|
246
|
+
scope = Object.new
|
247
|
+
scope.instance_variable_set :@user, User.new(:name => 'irvine')
|
248
|
+
template.render(scope)
|
249
|
+
end.equals "{\"city\":\"irvine\"}"
|
250
|
+
|
251
|
+
end
|
252
|
+
|
253
|
+
context "#code" do
|
254
|
+
|
255
|
+
asserts "that it can create an arbitraty code node" do
|
256
|
+
template = rabl %{
|
257
|
+
code(:foo) { 'bar' }
|
258
|
+
}
|
259
|
+
template.render(Object.new)
|
260
|
+
end.equals "{\"foo\":\"bar\"}"
|
261
|
+
|
262
|
+
asserts "that it can be passed conditionals" do
|
263
|
+
template = rabl %{
|
264
|
+
code(:foo, :if => lambda { |i| false }) { 'bar' }
|
265
|
+
}
|
266
|
+
template.render(Object.new)
|
267
|
+
end.equals "{}"
|
268
|
+
|
269
|
+
end
|
270
|
+
|
271
|
+
context "#child" do
|
272
|
+
|
273
|
+
asserts "that it can create a child node" do
|
274
|
+
template = rabl %{
|
275
|
+
object @user
|
276
|
+
attribute :name
|
277
|
+
child(@user) { attribute :city }
|
278
|
+
}
|
279
|
+
scope = Object.new
|
280
|
+
scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
|
281
|
+
template.render(scope)
|
282
|
+
end.equals "{\"name\":\"leo\",\"user\":{\"city\":\"LA\"}}"
|
283
|
+
|
284
|
+
asserts "that it can create a child node with different key" do
|
285
|
+
template = rabl %{
|
286
|
+
object @user
|
287
|
+
attribute :name
|
288
|
+
child(@user => :person) { attribute :city }
|
289
|
+
}
|
290
|
+
scope = Object.new
|
291
|
+
scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
|
292
|
+
template.render(scope)
|
293
|
+
|
294
|
+
end.equals "{\"name\":\"leo\",\"person\":{\"city\":\"LA\"}}"
|
295
|
+
end
|
296
|
+
|
297
|
+
context "#glue" do
|
298
|
+
|
299
|
+
asserts "that it glues data from a child node" do
|
300
|
+
template = rabl %{
|
301
|
+
object @user
|
302
|
+
attribute :name
|
303
|
+
glue(@user) { attribute :city }
|
304
|
+
glue(@user) { attribute :age }
|
305
|
+
}
|
306
|
+
scope = Object.new
|
307
|
+
scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :age => 12)
|
308
|
+
template.render(scope)
|
309
|
+
end.equals "{\"name\":\"leo\",\"city\":\"LA\",\"age\":12}"
|
310
|
+
end
|
311
|
+
end
|
312
|
+
end
|
data/test/template_test.rb
CHANGED
@@ -1,2 +1,68 @@
|
|
1
1
|
require File.expand_path('../teststrap',__FILE__)
|
2
|
+
require File.expand_path('../../lib/rabl/template', __FILE__)
|
2
3
|
|
4
|
+
class Scope
|
5
|
+
end
|
6
|
+
|
7
|
+
context "RablTemplate" do
|
8
|
+
|
9
|
+
asserts "that it registers for .rabl files" do
|
10
|
+
Tilt['test.rabl']
|
11
|
+
end.equals RablTemplate
|
12
|
+
|
13
|
+
context "#render" do
|
14
|
+
setup do
|
15
|
+
RablTemplate.new { |t| "code(:lol) { 'wut' }" }
|
16
|
+
end
|
17
|
+
|
18
|
+
asserts "preparing and evaluating templates on #render" do
|
19
|
+
topic.render
|
20
|
+
end.matches %r{"lol":"wut"}
|
21
|
+
|
22
|
+
3.times do |n|
|
23
|
+
asserts "can be rendered #{n} time(s)" do
|
24
|
+
topic.render
|
25
|
+
end.matches %r{"lol":"wut"}
|
26
|
+
end
|
27
|
+
|
28
|
+
# asserts "that it can be passed locals" do
|
29
|
+
# template = RablTemplate.new { "code(:name) { @name }" }
|
30
|
+
# template.render(Object.new, :object => 'Bob')
|
31
|
+
# end.matches %r{"name":"Bob"}
|
32
|
+
|
33
|
+
asserts "that it evaluates in object scope" do
|
34
|
+
template = RablTemplate.new { "code(:lol) { @name }" }
|
35
|
+
scope = Object.new
|
36
|
+
scope.instance_variable_set :@name, 'Joe'
|
37
|
+
template.render(scope)
|
38
|
+
end.matches %r{"lol":"Joe"}
|
39
|
+
|
40
|
+
asserts "that it can pass a block for yield" do
|
41
|
+
template = RablTemplate.new { "code(:lol) { 'Hey ' + yield + '!' }" }
|
42
|
+
template.render { 'Joe' }
|
43
|
+
end.matches %r{"lol":"Hey Joe!"}
|
44
|
+
end
|
45
|
+
|
46
|
+
context "#render compiled" do
|
47
|
+
|
48
|
+
# asserts "that it can be passed locals" do
|
49
|
+
# template = RablTemplate.new { "code(:name) { @name }" }
|
50
|
+
# template.render(Scope.new, :object => 'Bob')
|
51
|
+
# end.matches %r{"name":"Bob"}
|
52
|
+
|
53
|
+
asserts "that it evaluates in an object scope" do
|
54
|
+
template = RablTemplate.new { "code(:lol) { @name }" }
|
55
|
+
scope = Scope.new
|
56
|
+
scope.instance_variable_set :@name, 'Joe'
|
57
|
+
template.render(scope)
|
58
|
+
end.matches %r{"lol":"Joe"}
|
59
|
+
|
60
|
+
asserts "that it can pass a block for yield" do
|
61
|
+
template = RablTemplate.new { "code(:lol) { 'Hey ' + yield + '!' }" }
|
62
|
+
template.render(Scope.new) { 'Joe' }
|
63
|
+
end.matches %r{"lol":"Hey Joe!"}
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
end
|
data/test/teststrap.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rabl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Nathan Esquenazi
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-06-03 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
type: :development
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
50
|
+
name: tilt
|
51
51
|
prerelease: false
|
52
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
@@ -57,6 +57,17 @@ dependencies:
|
|
57
57
|
version: "0"
|
58
58
|
type: :development
|
59
59
|
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: bson_ext
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
69
|
+
type: :development
|
70
|
+
version_requirements: *id005
|
60
71
|
description: General ruby templating for json or xml
|
61
72
|
email:
|
62
73
|
- nesquena@gmail.com
|
@@ -81,11 +92,13 @@ files:
|
|
81
92
|
- lib/rabl/configuration.rb
|
82
93
|
- lib/rabl/engine.rb
|
83
94
|
- lib/rabl/helpers.rb
|
95
|
+
- lib/rabl/railtie.rb
|
84
96
|
- lib/rabl/template.rb
|
85
97
|
- lib/rabl/version.rb
|
86
98
|
- rabl.gemspec
|
87
99
|
- test.watchr
|
88
100
|
- test/builder_test.rb
|
101
|
+
- test/configuration_test.rb
|
89
102
|
- test/engine_test.rb
|
90
103
|
- test/models/user.rb
|
91
104
|
- test/template_test.rb
|
@@ -120,6 +133,7 @@ specification_version: 3
|
|
120
133
|
summary: General ruby templating for json or xml
|
121
134
|
test_files:
|
122
135
|
- test/builder_test.rb
|
136
|
+
- test/configuration_test.rb
|
123
137
|
- test/engine_test.rb
|
124
138
|
- test/models/user.rb
|
125
139
|
- test/template_test.rb
|