Sha256: 7574cbf552171d3717b06d69352f22c9f346c497a23fe86d682aa9da73965190

Contents?: true

Size: 628 Bytes

Versions: 5

Compression:

Stored size: 628 Bytes

Contents

module ECMBlockchain
  class DataContent
    include ActiveModel::Validations
    attr_accessor :data

    validate :empty_data

    def initialize(data={})
      data ||= {}
      @data = data.deep_symbolize_keys
      create_data_attr_accessors
    end

    def added?
      @data.any?
    end

    private

    def create_data_attr_accessors
      @data.each do |name, value|
        self.class.class_eval { attr_accessor name }
        self.instance_variable_set("@#{name}", value)
      end
    end

    def empty_data
      errors.add(:base, "Please supply at least one key value pair") unless data.any?
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
ecm-blockchain-api-1.1.2 lib/ecm-blockchain-api/models/data_content_model.rb
ecm-blockchain-api-1.1.1 lib/ecm-blockchain-api/models/data_content_model.rb
ecm-blockchain-api-1.1.0 lib/ecm-blockchain-api/models/data_content_model.rb
ecm_blockchain_api-1.0.1 lib/ecm_blockchain_api/models/data_content_model.rb
ecm_blockchain_api-1.0.0 lib/ecm_blockchain_api/models/data_content_model.rb