Sha256: 8314c7d754cb93cbf392c89ba9edc1acf0e9646789dec4602290550fba60361a

Contents?: true

Size: 1.23 KB

Versions: 31

Compression:

Stored size: 1.23 KB

Contents

require 'unitwise/standard/extras'
module Unitwise::Standard
  class Base
    include Unitwise::Standard::Extras

    attr_accessor :attributes

    def self.local_key
      remote_key
    end

    def self.all
      @all ||= read
    end

    def self.read
      Unitwise::Standard.hash[remote_key].inject([]){|a,h| a << self.new(h)}
    end

    def self.hash
      self.all.map(&:to_hash)
    end

    def self.path
      Unitwise.data_file(local_key)
    end

    def self.write
      File.open(path, 'w') do |f|
        f.write hash.to_yaml
      end
    end

    def initialize(attributes)
      @attributes = attributes
    end

    def names
      if attributes["name"].respond_to?(:map)
        attributes["name"].map(&:to_s)
      else
        attributes["name"].to_s
      end
    end

    def symbol
      sym = attributes["printSymbol"]
      if sym.is_a?(Hash)
        hash_to_markup(sym)
      elsif sym
        sym.to_s
      end
    end

    def primary_code
      attributes["@Code"]
    end

    def secondary_code
      attributes["@CODE"]
    end

    def to_hash
      [:names, :symbol, :primary_code, :secondary_code].inject({}) do |h,a|
        if v = self.send(a)
          h[a] = v
        end
        h
      end
    end

  end
end

Version data entries

31 entries across 31 versions & 2 rubygems

Version Path
unitwise-2.3.0 lib/unitwise/standard/base.rb
unitwise-2.2.0 lib/unitwise/standard/base.rb
unitwise-2.1.0 lib/unitwise/standard/base.rb
unitwise-2.0.0 lib/unitwise/standard/base.rb
unitwise-1.1.0 lib/unitwise/standard/base.rb
unitwise-193-1.0.4 lib/unitwise/standard/base.rb
unitwise-1.0.4 lib/unitwise/standard/base.rb
unitwise-1.0.3 lib/unitwise/standard/base.rb
unitwise-1.0.2 lib/unitwise/standard/base.rb
unitwise-1.0.1 lib/unitwise/standard/base.rb
unitwise-1.0.0 lib/unitwise/standard/base.rb
unitwise-0.10.0 lib/unitwise/standard/base.rb
unitwise-0.9.1 lib/unitwise/standard/base.rb
unitwise-0.9.0 lib/unitwise/standard/base.rb
unitwise-0.8.1 lib/unitwise/standard/base.rb
unitwise-0.8.0 lib/unitwise/standard/base.rb
unitwise-0.7.1 lib/unitwise/standard/base.rb
unitwise-0.7.0 lib/unitwise/standard/base.rb
unitwise-0.6.2 lib/unitwise/standard/base.rb
unitwise-0.6.1 lib/unitwise/standard/base.rb