class Creamerscript::Sweeteners::MethodDefinition

Public Instance Methods

arguments() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 32
def arguments
  parameter_names.join(", ")
end
constructor() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 16
def constructor
  "constructor: (#{arguments}) ->"
end
definition_with_arguments() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 24
def definition_with_arguments
  "#{method_name}: (#{arguments}) =>"
end
definition_without_arguments() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 20
def definition_without_arguments
  "#{method_name}: =>"
end
method_name() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 28
def method_name
  signature_keys.join("_")
end
pattern() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 4
def pattern
  /def #{SYMBOL}(?::#{SYMBOL})?(?:\s+#{SYMBOL}:#{SYMBOL})*/
end
to_coffee() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 8
def to_coffee
  if method_name =~ /^constructor/
    constructor
  else
    arguments.empty? ? definition_without_arguments : definition_with_arguments
  end
end
type() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 36
def type
  :method_definition
end

Private Instance Methods

argument_list() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 50
def argument_list
  body.split.map { |arg| arg.split(":") }
end
body() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 54
def body
  source.split("def ").last
end
parameter_names() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 46
def parameter_names
  argument_list.flatten.each_with_index.map { |arg, index| arg.gsub(",", "") if index.odd? }.compact
end
signature_keys() click to toggle source
# File lib/creamerscript/sweeteners/method_definition.rb, line 42
def signature_keys
  argument_list.flatten.each_with_index.map { |arg, index| arg if index.even? }.compact
end