Sha256: 96fc24d963968bfca4ff6d409796dbe9eade1ece0fc7fd90b6ea66b88dac48a3

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

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

def patterns_with_new
  new_card? ? patterns_without_new[1..-1] : patterns_without_new
end
alias_method_chain :patterns, :new

def reset_patterns
  @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 reset_patterns_if_rule saving=false
  if !new_card? && is_rule?
    set = left
    set.reset_patterns
    set.include_set_modules

    # FIXME: should be in right/read.rb
    if saving && right.id == Card::ReadID
      self.add_to_read_rule_update_queue(set.item_cards limit: 0)
    end
  end
end

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

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

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

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

def rule_set_keys
  set_names # this triggers set_members cache.  need better solution!
  @rule_set_keys ||= patterns.map(&:rule_set_key).compact
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
card-1.17.4 mod/01_core/set/all/pattern.rb
card-1.17.3 mod/01_core/set/all/pattern.rb
card-1.17.2 mod/01_core/set/all/pattern.rb