Sha256: 90dd952c9ccc62920236be5d00ae2273ec340731b5f81e97968733091c3f076e

Contents?: true

Size: 869 Bytes

Versions: 1

Compression:

Stored size: 869 Bytes

Contents

module SanUltari
  class Config
    class Store
      def [] name
        @values ||= {}

        @values[name] = SanUltari::Config.new name if @values[name] == nil
        @values[name]
      end

      def []= name, value
        @values ||= {}

        @values[name] = value
      end

      def keys
        return [] if @values == nil
        @values.keys
      end

      def method_missing(method_name, *args, &block)
        name = method_name.to_s
        name.chomp!('=')

        self.class.instance_eval do
          define_method(name.to_sym) do |&blk|
          blk.call self[name] if blk != nil
          self[name]
          end if not public_methods.include? name.to_sym

          define_method("#{name}=".to_sym) do |value|
            self[name] = value
          end
        end

        send method_name, *args, &block
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sanultari-config-0.1.0.RC1 lib/sanultari/config/store.rb