lib/rabl/builder.rb in rabl-0.8.5 vs lib/rabl/builder.rb in rabl-0.8.6
- old
+ new
@@ -45,11 +45,11 @@
@options[:child].each do |settings|
child(settings[:data], settings[:options], &settings[:block])
end if @options.has_key?(:child)
# Glues
@options[:glue].each do |settings|
- glue(settings[:data], &settings[:block])
+ glue(settings[:data], settings[:options], &settings[:block])
end if @options.has_key?(:glue)
# Wrap result in root
if options[:root_name].present?
@_root_name = options[:root_name]
@@ -106,11 +106,11 @@
@_result[name] = self.object_to_hash(object, engine_options, &block)
end
# Glues data from a child node to the json_output
# glue(@user) { attribute :full_name => :user_full_name }
- def glue(data, &block)
- return false unless data.present?
+ def glue(data, options={}, &block)
+ return false unless data.present? && resolve_condition(options)
object = data_object(data)
glued_attributes = self.object_to_hash(object, :root => false, &block)
@_result.merge!(glued_attributes) if glued_attributes
end