Class: GraphQL::Client::Erubis

Inherits:
ActionView::Template::Handlers::Erubis
  • Object
show all
Defined in:
lib/graphql/client/erubis.rb

Overview

Public: Extended Erubis implementation that supports GraphQL static query sections.

<%graphql
  query GetVerison {
    version
  }
%>
<%= data.version %>

Configure ActionView’s default ERB implementation to use this class.

ActionView::Template::Handlers::ERB.erb_implementation = GraphQL::Client::Erubis

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extract_graphql_section(src) ⇒ Object

Public: Extract GraphQL section from ERB template.

src - String ERB text

Returns String GraphQL query and line number or nil or no section was defined.



26
27
28
29
30
31
# File 'lib/graphql/client/erubis.rb', line 26

def self.extract_graphql_section(src)
  query_string = src.scan(/<%graphql([^%]+)%>/).flatten.first
  if query_string
    return query_string, Regexp.last_match.pre_match.count("\n") + 1
  end
end

Instance Method Details

#convert_input(src, input) ⇒ Object

Internal: Extend Rails’ Erubis handler to simply ignore <%graphql sections.



35
36
37
38
# File 'lib/graphql/client/erubis.rb', line 35

def convert_input(src, input)
  input = input.gsub(/<%graphql/, "<%#")
  super(src, input)
end