Object
# File lib/origami/javascript.rb, line 145 def self.acro_method(name, *def_args, &b) define_method(name) do |*args| if @engine.options[:log_method_calls] @engine.options[:console].puts( "LOG: #{self.class}.#{name}(#{args.map{|arg| Arg.inspect(arg)}.join(',')})" ) end args = AcrobatObject.check_method_args(args, def_args) self.instance_exec(*args, &b) if b end end
# File lib/origami/javascript.rb, line 158 def self.acro_method_protected(name, *def_args, &b) define_method(name) do |*args| if @engine.options[:log_method_calls] @engine.options[:console].puts( "LOG: #{self.class}.#{name}(#{args.map{|arg| arg.inspect}.join(',')})" ) end raise NotAllowedError args = AcrobatObject.check_method_args(args, def_args) self.instance_exec(*args, &b) if b end end
# File lib/origami/javascript.rb, line 111 def self.check_method_args(args, def_args) if args.first.is_a?(V8::Object) args = args.first members = args.entries.map{|k,v| k} argv = [] def_args.each do |def_arg| raise MissingArgError if def_arg.required and not members.include?(def_arg.name) if members.include?(def_arg.name) arg = args[def_arg.name] raise TypeError if def_arg.type and not arg.is_a?(def_arg.type) else arg = def_arg.default end argv.push(arg) end args = argv else i = 0 def_args.each do |def_arg| raise MissingArgError if def_arg.required and i >= args.length raise TypeError if def_arg.type and not args[i].is_a?(def_arg.type) args.push(def_arg.default) if i >= args.length i = i + 1 end end args end
Generated with the Darkfish Rdoc Generator 2.