class DYI::Script::EcmaScript::Function

Class representing a function of ECMAScript. The scripting becomes effective only when it is output by SVG format.

Attributes

arguments[R]

Returns an array of formal parameter identifiers on ECMAScript. @return [Array<String>] an array of formal parameter identifiers

name[R]

Returns a function identifier on ECMAScript. @return [String, nil] a function identifier if the function has a

identifier on ECMAScript, nil otherwise

Public Class Methods

new(body, name=nil, *arguments) click to toggle source

@param [String] body function body on ECMAScript @param [String] name a function identifier on ECMAScript @param [Array<String>] arguments a list of formal parameter

identifiers on ECMAScript
Calls superclass method
# File lib/dyi/script/ecmascript.rb, line 345
def initialize(body, name=nil, *arguments)
  super(body)
  if name && name !~ /\A[\$A-Z_a-z][\$0-9A-Z_a-z]*\z/
    raise ArgumentError, "illegal identifier: `#{name}'"
  end
  @name = name
  @arguments = arguments.map do |arg|
    if arg.to_s !~ /\A[\$A-Z_a-z][\$0-9A-Z_a-z]*\z/
      raise ArgumentError, "illegal identifier: `#{arg}'"
    end
    arg.to_s
  end
end

Public Instance Methods

contents() click to toggle source

Returns string expression of this function in ECMAScript @return [String] expression in ECMAScript @since 1.0.3

# File lib/dyi/script/ecmascript.rb, line 362
def contents
  parts = []
  parts << 'function'
  parts << " #{name}" if name
  parts << '('
  parts << arguments.join(', ')
  parts << "){\n"
  parts << @body
  parts << "\n}"
  parts.join
end