Sha256: 418332f5affbcafc1977aa9f650b6bc0281fd9248697d1cb0e141badd096bb17
Contents?: true
Size: 1.86 KB
Versions: 1
Compression:
Stored size: 1.86 KB
Contents
module GraphQLDocs module Helpers SLUGIFY_PRETTY_REGEXP = Regexp.new("[^[:alnum:]._~!$&'()+,;=@]+").freeze attr_accessor :templates def slugify(str) slug = str.gsub(SLUGIFY_PRETTY_REGEXP, '-') slug.gsub!(%r!^\-|\-$!i, '') slug.downcase end def include(filename, opts = {}) template = fetch_include(filename) opts = { base_url: @options[:base_url], classes: @options[:classes] }.merge(opts) template.result(OpenStruct.new(opts.merge(helper_methods)).instance_eval { binding }) end def markdownify(string) return '' if string.nil? ::CommonMarker.render_html(string, :DEFAULT).strip end def graphql_operation_types @parsed_schema[:operation_types] || [] end def graphql_mutation_types @parsed_schema[:mutation_types] || [] end def graphql_object_types @parsed_schema[:object_types] || [] end def graphql_interface_types @parsed_schema[:interface_types] || [] end def graphql_enum_types @parsed_schema[:enum_types] || [] end def graphql_union_types @parsed_schema[:union_types] || [] end def graphql_input_object_types @parsed_schema[:input_object_types] || [] end def graphql_scalar_types @parsed_schema[:scalar_types] || [] end private def fetch_include(filename) @templates ||= {} return @templates[filename] unless @templates[filename].nil? contents = File.read(File.join(@options[:templates][:includes], filename)) @templates[filename] = ERB.new(contents) end def helper_methods return @helper_methods if defined?(@helper_methods) @helper_methods = {} Helpers.instance_methods.each do |name| next if name == :helper_methods @helper_methods[name] = method(name) end @helper_methods end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
graphql-docs-1.0.0.pre2 | lib/graphql-docs/helpers.rb |