Sha256: e7d3977743ca1731fb1869b71f379e13f914b7636a4aa497cfa8167b5e45e871

Contents?: true

Size: 1.15 KB

Versions: 7

Compression:

Stored size: 1.15 KB

Contents

class Card
  class Format
    module Names
      def initialize_context_names
        if @context_names
          context_names_minus_irrelevants
        elsif params[:slot]
          context_names_from_params
        else
          []
        end
      end

      def context_names_minus_irrelevants
        part_keys = @card.cardname.part_names.map(&:key)
        @context_names.reject { |n| !part_keys.include? n.key }
      end

      def context_names_from_params
        context_name_list = params[:slot][:name_context].to_s
        context_name_list.split(",").map(&:to_name)
      end

      def add_name_context name=nil
        name ||= card.name
        @context_names += name.to_name.part_names
        @context_names.uniq!
      end

      def with_name_context name
        old_context = @context_names
        add_name_context name
        result = yield
        @context_names = old_context
        result
      end

      def showname title=nil
        if title
          title.to_name.to_absolute_name(card.cardname).to_show(*@context_names)
        else
          @showname ||= card.cardname.to_show(*@context_names)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
card-1.19.6 lib/card/format/names.rb
card-1.19.5 lib/card/format/names.rb
card-1.19.4 lib/card/format/names.rb
card-1.19.3 lib/card/format/names.rb
card-1.19.2 lib/card/format/names.rb
card-1.19.1 lib/card/format/names.rb
card-1.19.0 lib/card/format/names.rb