Sha256: c1b4b3cb0807b6a37c3da205fc19d2f7f83b96d107788ab37998a60ab0c55e83

Contents?: true

Size: 1.24 KB

Versions: 12

Compression:

Stored size: 1.24 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 shark_keys
          @shark_keys ||= ::Set.new(keymap[:both]) + keymap[:shark]
        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 slot_keys
          @slot_keys ||= all_keys - [:skip_perms]
        end

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

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
card-1.100.0 lib/card/view/options/key_lists.rb
card-1.99.6 lib/card/view/options/key_lists.rb
card-1.99.5 lib/card/view/options/key_lists.rb
card-1.99.4 lib/card/view/options/key_lists.rb
card-1.99.3 lib/card/view/options/key_lists.rb
card-1.99.2 lib/card/view/options/key_lists.rb
card-1.99.1 lib/card/view/options/key_lists.rb
card-1.99.0 lib/card/view/options/key_lists.rb
card-1.98.3 lib/card/view/options/key_lists.rb
card-1.98.2 lib/card/view/options/key_lists.rb
card-1.98.1 lib/card/view/options/key_lists.rb
card-1.98.0 lib/card/view/options/key_lists.rb