Method: GraphQL::Language::Nodes::AbstractNode.inherited

Defined in:
lib/graphql/language/nodes.rb

.inherited(child_class) ⇒ Object

Add a default #visit_method and #children_method_name using the class name



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/graphql/language/nodes.rb', line 151

def inherited(child_class)
  super
  name_underscored = child_class.name
    .split("::").last
    .gsub(/([a-z])([A-Z])/,'\1_\2') # insert underscores
    .downcase # remove caps

  child_class.module_eval "    def visit_method\n      :on_\#{name_underscored}\n    end\n\n    class << self\n      attr_accessor :children_method_name\n\n      def visit_method\n        :on_\#{name_underscored}\n      end\n    end\n    self.children_method_name = :\#{name_underscored}s\n  RUBY\nend\n", __FILE__, __LINE__