Sha256: 9ac6070d122b8846dbefac376cb1d7fe9a7d07ae4532cc75d1c1613419167306

Contents?: true

Size: 1.17 KB

Versions: 13

Compression:

Stored size: 1.17 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 ruler_keys
          @ruler_keys ||= ::Set.new(keymap[:both]) + keymap[:ruler]
        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
          @ruler_keys = nil
          @heir_keys = nil
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
card-1.96.8 lib/card/view/options/key_lists.rb
card-1.96.7 lib/card/view/options/key_lists.rb
card-1.96.6 lib/card/view/options/key_lists.rb
card-1.96.5 lib/card/view/options/key_lists.rb
card-1.96.4 lib/card/view/options/key_lists.rb
card-1.96.3 lib/card/view/options/key_lists.rb
card-1.96.2 lib/card/view/options/key_lists.rb
card-1.96.1 lib/card/view/options/key_lists.rb
card-1.96.0 lib/card/view/options/key_lists.rb
card-1.95.3 lib/card/view/options/key_lists.rb
card-1.95.2 lib/card/view/options/key_lists.rb
card-1.95.1 lib/card/view/options/key_lists.rb
card-1.95.0 lib/card/view/options/key_lists.rb