Sha256: fa49e1d3157b64da69c8c43045c315bf24b8a86509e044f0dbb1e8fcc7bfd6f9

Contents?: true

Size: 1.63 KB

Versions: 8

Compression:

Stored size: 1.63 KB

Contents

class Card
  module Set
    class Pattern
      # pattern-related Card instance methods
      module All
        def patterns?
          defined? @patterns
        end

        def all_patterns
          @all_patterns ||= set_patterns.map { |sub| sub.new self }.compact
        end

        # new cards do not
        def patterns
          @patterns ||= (new_card? ? all_patterns[1..-1] : all_patterns)
        end

        def reset_patterns
          # Rails.logger.info "resetting patterns: #{name}"
          @patterns = @all_patterns = nil
          @template = @virtual = nil
          @set_mods_loaded = @set_modules = @set_names = @rule_set_keys = nil
          @junction_only = nil # only applies to set cards
          true
        end

        def safe_set_keys
          patterns.map(&:safe_key).reverse * " "
        end

        def set_modules
          @set_modules ||= all_patterns[0..-2].reverse.map(&:module_list).flatten.compact
        end

        def set_format_modules klass
          @set_format_modules ||= {}
          @set_format_modules[klass] =
            all_patterns[0..-2].reverse.map do |pattern|
              pattern.format_module_list klass
            end.flatten.compact
        end

        def set_names
          @set_names = patterns.map(&:to_s) if @set_names.nil?
          @set_names
        end

        def in_set? set_module
          patterns.map(&:module_key).include? set_module.shortname
        end

        def rule_set_keys
          @rule_set_keys ||= patterns.map(&:rule_set_key).compact
        end

        def include_module? set
          singleton_class&.include? set
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
card-1.103.2 lib/card/set/pattern/all.rb
card-1.103.1 lib/card/set/pattern/all.rb
card-1.103.0 lib/card/set/pattern/all.rb
card-1.101.7 lib/card/set/pattern/all.rb
card-1.102.0 lib/card/set/pattern/all.rb
card-1.101.6 lib/card/set/pattern/all.rb
card-1.101.5 lib/card/set/pattern/all.rb
card-1.101.4 lib/card/set/pattern/all.rb