module FN::Node::Base

Constants

CURRENT_PAGE_HEIGHT
CURRENT_PAGE_WIDTH

Public Instance Methods

classify(name) click to toggle source
# File lib/fn/node/base.rb, line 51
def classify(name)
  name.split("_").map{|s| s.capitalize}.join("")
end
has_no_children() click to toggle source
# File lib/fn/node/base.rb, line 20
def has_no_children
  raise "should have no children" if children.any?{|c| !c.cdata?}
end
mixin(node) click to toggle source
# File lib/fn/node/base.rb, line 44
def mixin(node)
  name = classify(node.name)
  mod = FN::SWF::Node.const_get(name) rescue 
        FN::PDF::Node.const_get(name)
  node.extend(mod)
end
value(v) click to toggle source
# File lib/fn/node/base.rb, line 62
def value(v)
  case v
  when Array
    v.map{|e| value(e)}.join(" ")
  else
    v.to_s
  end
end
visit(struct, debug = false) click to toggle source
# File lib/fn/node/base.rb, line 16
def visit(struct, debug = false)
  visit_children(struct, debug)
end
visit_children(struct, debug = false) click to toggle source
# File lib/fn/node/base.rb, line 24
def visit_children(struct, debug = false)
  if debug
    puts "="*88
    puts "Visiting Children"
    puts "Struct"
    puts struct.inspect  
    puts "-"*88
    puts "Children"
    puts children.inspect
    puts "="*88
  end
  children.each do |c| 
    if c.element?
      mixin(c)
      c.visit(struct, debug)
    end
  end
  return struct
end
with_attributes_like(node) click to toggle source
# File lib/fn/node/base.rb, line 55
def with_attributes_like(node)
  node.attributes.each do |attr|
    self[attr.name] = attr.value
  end
  self
end