Module: Card::Set::AllPlus::Alias

Extended by:
Card::Set
Defined in:
card/tmpsets/set/mod018-card-mod-alias/all_plus/alias.rb

Overview

Set: All “+” cards (Alias)

Constant Summary

Constants included from Helpers

Helpers::SET_PATTERN_TEST_REGEXP

Constants included from Event::Api

Event::Api::OPTIONS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Card::Set

reset_modules

Methods included from I18nScope

#mod_name, #scope

Methods included from Loader

#clean_empty_module_from_hash, #clean_empty_modules, #extended, #process_base_modules, #register_set

Methods included from Helpers

#method_missing, #num_set_parts, #pattern_code, #respond_to_missing?, #set_name_parts, #shortname, #underscore

Methods included from Card::Set::AdvancedApi

#attachment, #define_set_from_error, #ensure_set, #setting_opts, #stage_method

Methods included from Format

#before, #format, layout_method_name, #view, view_method_name, view_setting_method_name, wrapper_method_name

Methods included from Inheritance

#include_set, #include_set_formats

Methods included from Basket

#abstract_basket, #add_to_basket, #basket, #unshift_basket

Methods included from Trait

#card_accessor, #card_reader, #card_writer, #require_field

Methods included from Event::Api

#event

Class Method Details

.source_locationObject



7
# File 'card/tmpsets/set/mod018-card-mod-alias/all_plus/alias.rb', line 7

def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-alias/set/all_plus/alias.rb"; end

Instance Method Details

#alias?Boolean

a compound name is an alias if any part is an alias

Returns:

  • (Boolean)


13
14
15
# File 'card/tmpsets/set/mod018-card-mod-alias/all_plus/alias.rb', line 13

def alias?
  name.parts.any? { |p| Card[p]&.alias? }
end

#event: validate_not_aliasObject



8
9
10
# File 'card/tmpsets/set/mod018-card-mod-alias/all_plus/alias.rb', line 8

event :validate_not_alias, :validate, on: :save do
  errors.add t(:alias_cards_no_children) if alias? && type_code != :alias
end

#target_cardObject



27
28
29
# File 'card/tmpsets/set/mod018-card-mod-alias/all_plus/alias.rb', line 27

def target_card
  Card.fetch target_name, new: {}
end

#target_nameObject

reconstructs the name to which a compound name is aliased



18
19
20
21
22
23
24
25
# File 'card/tmpsets/set/mod018-card-mod-alias/all_plus/alias.rb', line 18

def target_name
  Card::Name[
    name.parts.map do |p|
      part = Card[p]
      part&.alias? ? part.target_name : p
    end
  ]
end