Sha256: 6588adbc678921323db8b03c3076f427f4079d5d67bb823cc274e9410d32e84d

Contents?: true

Size: 1.55 KB

Versions: 28

Compression:

Stored size: 1.55 KB

Contents

require 'active_support/core_ext'

module Fortitude
  module Support
    class AssignsProxy
      def initialize(widget, keys)
        @widget = widget
        @keys = { }
        keys.each { |k| @keys[k] = true }
      end

      def is_default?(x)
        !! @widget._fortitude_default_assigns[x.to_sym]
      end

      def keys
        @keys.keys
      end

      def has_key?(x)
        !! @keys[x.to_sym]
      end

      def [](x)
        if has_key?(x)
          ivar_name = @widget.class.instance_variable_name_for_need(x)
          @widget.instance_variable_get(ivar_name)
        end
      end

      def []=(x, y)
        if has_key?(x)
          ivar_name = @widget.class.instance_variable_name_for_need(x)
          @widget.instance_variable_set(ivar_name, y)
        end
      end

      def to_hash
        out = { }
        keys.each { |k| out[k] = self[k] }
        out
      end

      def to_h
        to_hash
      end

      def length
        @keys.length
      end

      def size
        @keys.size
      end

      def to_s
        "<Assigns for #{@widget}: #{to_hash}>"
      end

      def inspect
        "<Assigns for #{@widget}: #{to_hash.inspect}>"
      end

      def member?(x)
        has_key?(x)
      end

      def store(key, value)
        self[key] = value
      end

      delegate :==, :assoc, :each, :each_pair, :each_key, :each_value, :empty?, :eql?, :fetch, :flatten,
        :has_value?, :hash, :include?, :invert, :key, :key?, :merge, :rassoc, :reject, :select,
        :to_a, :value?, :values, :values_at, :to => :to_hash
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
fortitude-0.9.6-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.6 lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.5-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.5 lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.4-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.4 lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.3-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.3 lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.2-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.2 lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.1-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.1 lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.0-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.9.0 lib/fortitude/support/assigns_proxy.rb
fortitude-0.0.10-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.0.10 lib/fortitude/support/assigns_proxy.rb
fortitude-0.0.9-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.0.9 lib/fortitude/support/assigns_proxy.rb
fortitude-0.0.7-java lib/fortitude/support/assigns_proxy.rb
fortitude-0.0.7 lib/fortitude/support/assigns_proxy.rb