class Origami::PDF::JavaScript::AcrobatObject
Public Class Methods
acro_method(name, *def_args, &b)
click to toggle source
# File lib/origami/javascript.rb, line 136 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
acro_method_protected(name, *def_args, &b)
click to toggle source
# File lib/origami/javascript.rb, line 149 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 unless @engine.privileged? raise NotAllowedError, "Security settings prevent access to this property or method." end args = AcrobatObject.check_method_args(args, def_args) self.instance_exec(*args, &b) if b end end
check_method_args(args, def_args)
click to toggle source
# File lib/origami/javascript.rb, line 96 def self.check_method_args(args, def_args) if args.first.is_a?(V8::Object) check_method_named_args(args.first, def_args) else check_method_ordered_args(args, def_args) end end
new(engine)
click to toggle source
# File lib/origami/javascript.rb, line 92 def initialize(engine) @engine = engine end
Private Class Methods
check_method_named_args(object, def_args)
click to toggle source
# File lib/origami/javascript.rb, line 104 def self.check_method_named_args(object, def_args) members = object.entries.map {|k, _| 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 = object[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 argv end
check_method_ordered_args(args, def_args)
click to toggle source
# File lib/origami/javascript.rb, line 124 def self.check_method_ordered_args(args, def_args) def_args.each_with_index do |def_arg, index| raise MissingArgError if def_arg.required and index >= args.length raise TypeError if def_arg.type and not args[index].is_a?(def_arg.type) args.push(def_arg.default) if index >= args.length end args end
Public Instance Methods
to_s()
click to toggle source
# File lib/origami/javascript.rb, line 166 def to_s "[object #{self.class.to_s.split('::').last}]" end
Also aliased as: inspect