Sha256: dbaf958c169267a5f9396c59c07547ef19889a7af57584c202808d5055019708

Contents?: true

Size: 719 Bytes

Versions: 7

Compression:

Stored size: 719 Bytes

Contents

# frozen_string_literal: true

require_relative 'contexts/inspect'

module Coactive
  class Context
    include Contexts::Inspect

    attr_reader :_data

    def initialize(data = {}, &block)
      data = data.to_h if data.respond_to?(:to_h)
      @_data = data
    end

    def [](key)
      @_data[key]
    end

    def []=(key, value)
      @_data[key] = value
    end

    def key?(key)
      @_data.key?(key)
    end

    def to_h
      @_data
    end

    def define_accessors!(keys)
      Array(keys).each do |key|
        define_singleton_method key do
          @_data[key]
        end
        define_singleton_method "#{key}=" do |value|
          @_data[key] = value
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
coactive-0.6.0 lib/coactive/context.rb
coactive-0.5.2 lib/coactive/context.rb
coactive-0.5.1 lib/coactive/context.rb
coactive-0.5.0 lib/coactive/context.rb
coactive-0.4.1 lib/coactive/context.rb
coactive-0.4.0 lib/coactive/context.rb
coactive-0.3.0 lib/coactive/context.rb