Sha256: 217d04c53d74655c1483db59bb4479ff6b615444cec415f06781ee013ee3a7fc
Contents?: true
Size: 900 Bytes
Versions: 1
Compression:
Stored size: 900 Bytes
Contents
require 'comma/data_extractor' require 'comma/header_extractor' class Object class_attribute :comma_formats class << self def comma(style = :default, &block) (self.comma_formats ||= {})[style] = block end def inherited(subclass) super subclass.comma_formats = self.comma_formats ? self.comma_formats.dup : {} end end def to_comma(style = :default) extract_with(Comma::DataExtractor, style) end def to_comma_headers(style = :default) extract_with(Comma::HeaderExtractor, style) end private def extract_with(extractor_class, style = :default) raise_unless_style_exists(style) extractor_class.new(self, style, self.comma_formats).results end def raise_unless_style_exists(style) raise "No comma format for class #{self.class} defined for style #{style}" unless self.comma_formats && self.comma_formats[style] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
comma-4.2.0 | lib/comma/object.rb |