class SublimeSunippetter::Core

SublimeSunippetter Core

Constants

DEFINE_FILE

Sunippetdefine file name.

DEFINE_FILE_TEMPLATE

Sunippetdefine file template

REQUIRE_SUNIPPET_TEMPLATE

sublime sunippet require template

SUNIPPET_TEMPLATE

sublime sunippet template

Public Instance Methods

generate_sunippets() click to toggle source

generate sublime text2 sunippets from Sunippetdefine

# File lib/sublime_sunippetter.rb, line 65
def generate_sunippets
  sunippet_define = read_sunippetdefine
  dsl = Dsl.new
  dsl.instance_eval sunippet_define
  dsl.target_methods.each do |m|
    snippet = get_snippet(
      m.method_name ,
      get_args_names(m) ,
      get_do_block(m).chop,
      get_brace_block(m),
      dsl._scope
    )
    filename = "#{dsl._output_path}/#{m.method_name.to_s.tr('?', '')}.sublime-snippet"
    File.open(filename, 'w:UTF-8') { |f|f.puts snippet }
  end

  dsl.requires.each do |r|
    require_snippet = get_require_snippet(r, dsl._scope)
    File.open("require_#{r}.sublime-snippet", 'w:UTF-8') { |f|f.puts require_snippet }
  end
end
init() click to toggle source

generate Sunippetdefine to current directory.

# File lib/sublime_sunippetter.rb, line 60
def init
  File.open("./#{DEFINE_FILE}", 'w') { |f|f.puts DEFINE_FILE_TEMPLATE }
end

Private Instance Methods

get_args_names(method) click to toggle source
# File lib/sublime_sunippetter.rb, line 99
def get_args_names(method)
  args = method.args
  args_names = ' '
  args.each_with_index { |a, i|args_names << "${#{i + 1}:#{a}}, " }
  args_names.chop!.chop! unless args.empty?
end
get_brace_block(method) click to toggle source
# File lib/sublime_sunippetter.rb, line 115
def get_brace_block(method)
  return '' unless method.has_brace_block
  ' { |${9:args}|${0:block} }'
end
get_do_block(method) click to toggle source
# File lib/sublime_sunippetter.rb, line 106
    def get_do_block(method)
      return '' unless method.has_do_block
      <<-EOS
 do |${9:args}|
  ${0:block}
end
      EOS
    end
get_require_snippet(require_file, scope) click to toggle source
# File lib/sublime_sunippetter.rb, line 120
def get_require_snippet(require_file, scope)
  ERB.new(REQUIRE_SUNIPPET_TEMPLATE).result(binding)
end
get_snippet(method_name, args_names, do_block, brace_block, scope) click to toggle source
# File lib/sublime_sunippetter.rb, line 95
def get_snippet(method_name, args_names, do_block, brace_block, scope)
  ERB.new(SUNIPPET_TEMPLATE).result(binding)
end
read_sunippetdefine() click to toggle source
# File lib/sublime_sunippetter.rb, line 88
def read_sunippetdefine
  unless File.exists? "./#{DEFINE_FILE}"
    fail SunippetterError, "you must create #{DEFINE_FILE}. manual or 'suni init' command"
  end
  File.read("./#{DEFINE_FILE}")
end