Sha256: 502d644528e170249721abb4afa205d148e40f3aff5fb5f0e69c7f370e660854

Contents?: true

Size: 1.61 KB

Versions: 1

Compression:

Stored size: 1.61 KB

Contents

require "eddy/data/store"
require "eddy/data/persistence/base"
require "eddy/data/persistence/memory"

module Eddy

  # Persistent data used by Eddy.
  # @return [Eddy::Data::Persistence::Base]
  def self.data
    return @data if defined? @data
    case Eddy.config.persistence_method
    when :memory then @data = Eddy::Data::Persistence::Memory.new()
    when :file   then raise NotImplementedError
    when :db     then raise NotImplementedError
    else raise Eddy::Errors::Error, "Unsupported persistence method: #{Eddy.config.persistence_method}"
    end
    return @data
  end

  module Data

    # @return [Integer]
    def self.new_interchange_control_number
      existing = Eddy.data.interchange_control_numbers()
      new_ctrl_num = Eddy::Util.new_number(existing)
      Eddy.data.add_interchange_control_number(new_ctrl_num)
      return new_ctrl_num
    end

    # @param functional_group [String]
    # @return [Integer]
    def self.new_functional_group_control_number(functional_group)
      existing = Eddy.data.functional_group_control_numbers(functional_group)
      new_ctrl_num = Eddy::Util.new_number(existing)
      Eddy.data.add_functional_group_control_number(functional_group, new_ctrl_num)
      return new_ctrl_num
    end

    # @param transaction_set_id [String]
    # @return [Integer]
    def self.new_transaction_set_control_number(transaction_set_id)
      existing = Eddy.data.transaction_set_control_numbers(transaction_set_id)
      new_ctrl_num = Eddy::Util.new_number(existing)
      Eddy.data.transaction_set_control_numbers(transaction_set_id, new_ctrl_num)
      return new_ctrl_num
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eddy-0.3.0 lib/eddy/data.rb