module JbuilderOptionals
Public Instance Methods
optional!(key, val)
click to toggle source
# File lib/jbuilder_optionals.rb, line 3 def optional!(key, val) set!(key, val) if @contains&.any?{|i| i == key} end
optional_partial!(*args)
click to toggle source
# File lib/jbuilder_optionals.rb, line 7 def optional_partial!(*args) key = args.first.split('/').last partial_contains = ::Hash === @contains.last ? @contains.last[key.to_sym] : nil return unless @contains&.any?{|i| i.to_s == key.to_s} || @contains.last&.keys&.any?{|i| i.to_s == key.to_s} if ::Hash === args.last args.last[:contains] = partial_contains else args.push(contains: partial_contains) end if key.to_s == key.to_s.singularize set!key do partial!(*args) end else set!key do array! args.last[key.to_sym] do |record| args.last[key.to_s.singularize.to_sym] = record partial!(*args) end end end end
partial!(*args)
click to toggle source
Calls superclass method
# File lib/jbuilder_optionals.rb, line 30 def partial!(*args) @contains = args.last&.fetch(:contains, nil) super(*args) end