class Graphlyte::Builder
Public Class Methods
new(fields = [])
click to toggle source
# File lib/graphlyte/builder.rb, line 6 def initialize(fields = []) @fields = fields end
Public Instance Methods
<<(buildable)
click to toggle source
# File lib/graphlyte/builder.rb, line 10 def <<(buildable) raise "Must pass a Fieldset or Fragment" unless [Fragment, Fieldset].include?(buildable.class) @fields.concat(buildable.fields) if buildable.class.eql? Fieldset # todo: handle fragments better, it's not a field @fields << buildable if buildable.class.eql? Fragment end
>()
click to toggle source
# File lib/graphlyte/builder.rb, line 43 def > self end
>>()
click to toggle source
for internal use only
# File lib/graphlyte/builder.rb, line 39 def >> @fields end
method_missing(method, fieldset_or_hargs=nil, hargs={}, &block)
click to toggle source
# File lib/graphlyte/builder.rb, line 19 def method_missing(method, fieldset_or_hargs=nil, hargs={}, &block) # todo: camel case method # hack for ruby bug in lower versions if [Fieldset, Fragment].include?(fieldset_or_hargs.class) field = Field.new(method, fieldset_or_hargs, hargs) else field = Field.new(method, Fieldset.empty, fieldset_or_hargs) end field.fieldset.builder.>.instance_eval(&block) if block @fields << field field end
respond_to_missing()
click to toggle source
# File lib/graphlyte/builder.rb, line 34 def respond_to_missing true end