Sha256: a079115748abb07823db615220209339640143059649d8b381372b876f4a92dc

Contents?: true

Size: 1.19 KB

Versions: 9

Compression:

Stored size: 1.19 KB

Contents

class Card
  class View
    module Options
      module KeyLists
        # all standard option keys
        # @return [Array]
        def all_keys
          @all_keys ||= keymap.each_with_object([]) { |(_k, v), a| a.push(*v) }
        end

        # keys whose values can be set by Deckers in card nests
        # @return [Array]
        def carditect_keys
          @carditect_keys ||= ::Set.new(keymap[:both]) + keymap[:carditect]
        end

        # keys that follow simple standard inheritance pattern from parent views
        # @return [Array]
        def heir_keys
          @heir_keys ||= ::Set.new(keymap[:both]) + keymap[:heir]
        end

        # Keys that can be read or written via accessors
        # @return [Array]
        def accessible_keys
          all_keys - [   # (all but the following)
            :view,       # view is accessed as requested_view or ok_view and cannot be
                         # directly manipulated
            :show, :hide # these have a more extensive API (see Card::View::Visibility)
          ]
        end

        def reset_key_lists
          @all_keys = nil
          @carditect_keys = nil
          @heir_keys = nil
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
card-1.94.1 lib/card/view/options/key_lists.rb
card-1.94.0 lib/card/view/options/key_lists.rb
card-1.93.13 lib/card/view/options/key_lists.rb
card-1.93.12 lib/card/view/options/key_lists.rb
card-1.93.11 lib/card/view/options/key_lists.rb
card-1.93.10 lib/card/view/options/key_lists.rb
card-1.93.9 lib/card/view/options/key_lists.rb
card-1.93.8 lib/card/view/options/key_lists.rb
card-1.93.7 lib/card/view/options/key_lists.rb