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