Sha256: 7e791629c0f35d519f7400755bb2e000742bfb3f3e05ae1877c752a55d652851

Contents?: true

Size: 774 Bytes

Versions: 18

Compression:

Stored size: 774 Bytes

Contents

class Card
  module Env
    # slot-related environmental variable handling
    module SlotOptions
      def slot_opts
        # FIXME:  upgrade to safe parameters
        self[:slot_opts] ||= interpret_slot_options
      end

      private

      def interpret_slot_options
        opts = hash params[:slot]
        opts.merge! shortcut_slot_opts
        opts.deep_symbolize_keys.slice(*Card::View::Options.slot_keys)
      end

      def shortcut_slot_opts
        opts = {}
        opts[:size] = params[:size].to_sym if params[:size]
        opts[:items] = { view: params[:item].to_sym } if slot_items_shortcut?
        opts
      end

      def slot_items_shortcut?
        params[:item].present? && !params.dig(:slot, :items, :view).present?
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
card-1.104.1 lib/card/env/slot_options.rb
card-1.104.0 lib/card/env/slot_options.rb
card-1.103.4 lib/card/env/slot_options.rb
card-1.103.3 lib/card/env/slot_options.rb
card-1.103.2 lib/card/env/slot_options.rb
card-1.103.1 lib/card/env/slot_options.rb
card-1.103.0 lib/card/env/slot_options.rb
card-1.101.7 lib/card/env/slot_options.rb
card-1.102.0 lib/card/env/slot_options.rb
card-1.101.6 lib/card/env/slot_options.rb
card-1.101.5 lib/card/env/slot_options.rb
card-1.101.4 lib/card/env/slot_options.rb
card-1.101.3 lib/card/env/slot_options.rb
card-1.101.2 lib/card/env/slot_options.rb
card-1.101.1 lib/card/env/slot_options.rb
card-1.101.0 lib/card/env/slot_options.rb
card-1.100.0 lib/card/env/slot_options.rb
card-1.99.6 lib/card/env/slot_options.rb