Sha256: 6ea76c2b60378350d1ec3eefc3a145a6d5a9f5799a6813f775b220aff2de139c
Contents?: true
Size: 1.05 KB
Versions: 10
Compression:
Stored size: 1.05 KB
Contents
require 'forwardable' module Spread2RDF module Schema class Element include Attributes extend Forwardable self.attributes = { name: nil, source_name: nil } attr_reader :parent attr_reader :block def_delegators :parent, :spreadsheet def initialize(parent, attr = {}, &block) @parent = parent @block = block init_attributes(attr) end def name (@name or @source_name).try(:to_sym) end def source_name (@source_name or @name).try(:to_s) end def worksheet return self if self.is_a? Worksheet parent = self.parent parent = parent.parent until parent.is_a? Worksheet or parent.nil? parent end def to_s name = (self.name.to_s == self.source_name.to_s ? self.name : "#{self.name} (#{self.source_name})" ) "#{self.class.name.split('::').last}-schema #{name}" end end end end
Version data entries
10 entries across 10 versions & 1 rubygems