Class: GQL::Connection
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Node
#ast_node, #context, #target, #variables
Class Method Summary collapse
Methods inherited from Node
call, cursor, field, #initialize, method_missing, #raw_value, #value, #value_of_call, #value_of_field, #value_of_fields
Constructor Details
This class inherits a constructor from GQL::Node
Class Method Details
.build_class(id, method, options = {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/gql/connection.rb', line 9 def build_class(id, method, = {}) list_class = [:list_class] || self.list_class || GQL.default_list_class item_class = [:item_class] || self.item_class if list_class.nil? raise Errors::UndefinedNodeClass.new(self, 'list') end unless list_class <= Connection raise Errors::InvalidNodeClass.new(list_class, Connection) end if item_class.nil? raise Errors::UndefinedNodeClass.new(self, 'item') end unless item_class <= Node raise Errors::InvalidNodeClass.new(item_class, Node) end Class.new(list_class).tap do |field_class| field_class.id = id.to_s field_class.method = method field_class.array :edges, item_class: item_class do target end end end |