class Kumogata2::Plugin::Ruby
Constants
- VERSION
Public Class Methods
new(options)
click to toggle source
# File lib/kumogata2/plugin/ruby.rb, line 12 def initialize(options) @options = options end
Public Instance Methods
dump(hash)
click to toggle source
# File lib/kumogata2/plugin/ruby.rb, line 23 def dump(hash) devaluate_template(hash).colorize_as(:ruby) end
parse(str)
click to toggle source
# File lib/kumogata2/plugin/ruby.rb, line 16 def parse(str) context = Kumogata2::Plugin::Ruby::Context.new(@options) context.instance_eval(str, @options.path_or_url) @post = context.instance_variable_get(:@_post) if context.instance_variable_defined? :@_post context.instance_variable_get(:@_template) if context.instance_variable_defined? :@_template end
post(outputs)
click to toggle source
# File lib/kumogata2/plugin/ruby.rb, line 27 def post(outputs) if @post @post.call(outputs) end end
Private Instance Methods
devaluate_template(template)
click to toggle source
# File lib/kumogata2/plugin/ruby.rb, line 35 def devaluate_template(template) exclude_key = proc do |k| k = k.to_s. gsub('::', '__'). gsub(':', '___'). gsub('.', '____'). gsub('-', '_____') k !~ /\A[_a-z]\w+\Z/i and k !~ %r|\A/\S*\Z| end key_conv = proc do |k| k = k.to_s if k =~ %r|\A/\S*\Z| proc do |v, nested| if nested "_path(#{k.inspect}) #{v}" else "_path #{k.inspect}, #{v}" end end else k.gsub('::', '__'). gsub(':', '___'). gsub('.', '____'). gsub('-', '_____') end end value_conv = proc do |v| if v.kind_of?(String) and v =~ /\A(?:0|[1-9]\d*)\Z/ v.to_i else v end end dslh_opts = { key_conv: key_conv, value_conv: value_conv, exclude_key: exclude_key, initial_depth: 1, } if ENV['EXPORT_RUBY_USE_BRACES'] == '1' dslh_opts[:use_braces_instead_of_do_end] = true end if ENV['EXPORT_RUBY_OLD_FORMAT'] == '1' dslh_opts[:dump_old_hash_array_format] = true end dsl = Dslh.deval(template, dslh_opts) <<-EOS template do #{dsl.strip} end EOS end