Class: CwCardUtils::CardDataSource
- Inherits:
-
Object
- Object
- CwCardUtils::CardDataSource
- Defined in:
- lib/cw_card_utils/scryfall_cmc_data.rb
Overview
Public: Abstract base class for card data sources. 日本語: カードデータソースの抽象基底クラスです。
Direct Known Subclasses
Instance Method Summary collapse
-
#cmc_for_card(name) ⇒ Numeric?
Public: Fetch converted mana cost for card.
-
#color_identity_for_card(name) ⇒ Array<String>
Public: Fetch color identity for card.
-
#find_card(name) ⇒ Hash, ...
Public: Find a card record by name.
-
#keywords_for_card(name) ⇒ Array<String>
Public: Fetch keywords for card.
-
#oracle_text_for_card(name) ⇒ String?
Public: Fetch oracle text for card.
-
#power_for_card(name) ⇒ String, ...
Public: Fetch power for card.
-
#toughness_for_card(name) ⇒ String, ...
Public: Fetch toughness for card.
-
#type_for_card(name) ⇒ String?
Public: Fetch type line for card (nil for Lands).
Instance Method Details
#cmc_for_card(name) ⇒ Numeric?
Public: Fetch converted mana cost for card. 日本語: 指定カードの点数で見たマナ・コストを取得します。
24 25 26 27 28 29 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 24 def cmc_for_card(name) card = find_card(name) card&.dig("cmc") || card&.cmc rescue StandardError nil end |
#color_identity_for_card(name) ⇒ Array<String>
Public: Fetch color identity for card. 日本語: 指定カードの色アイデンティティを取得します。
36 37 38 39 40 41 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 36 def color_identity_for_card(name) card = find_card(name) card&.dig("color_identity") || card&.color_identity || [] rescue StandardError [] end |
#find_card(name) ⇒ Hash, ...
Public: Find a card record by name. 日本語: カード名でレコードを検索します。
15 16 17 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 15 def find_card(name) raise NotImplementedError, "Subclasses must implement find_card" end |
#keywords_for_card(name) ⇒ Array<String>
Public: Fetch keywords for card. 日本語: 指定カードのキーワードを取得します。
48 49 50 51 52 53 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 48 def keywords_for_card(name) card = find_card(name) card&.dig("keywords") || card&.keywords || [] rescue StandardError [] end |
#oracle_text_for_card(name) ⇒ String?
Public: Fetch oracle text for card. 日本語: 指定カードのオラクルテキストを取得します。
84 85 86 87 88 89 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 84 def oracle_text_for_card(name) card = find_card(name) card&.dig("oracle_text") || card&.oracle_text rescue StandardError nil end |
#power_for_card(name) ⇒ String, ...
Public: Fetch power for card. 日本語: 指定カードのパワーを取得します。
72 73 74 75 76 77 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 72 def power_for_card(name) card = find_card(name) card&.dig("power") || card&.power rescue StandardError nil end |
#toughness_for_card(name) ⇒ String, ...
Public: Fetch toughness for card. 日本語: 指定カードのタフネスを取得します。
60 61 62 63 64 65 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 60 def toughness_for_card(name) card = find_card(name) card&.dig("toughness") || card&.toughness rescue StandardError nil end |
#type_for_card(name) ⇒ String?
Public: Fetch type line for card (nil for Lands). 日本語: 指定カードのタイプ行を取得します (土地は nil)。
96 97 98 99 100 101 102 103 |
# File 'lib/cw_card_utils/scryfall_cmc_data.rb', line 96 def type_for_card(name) card = find_card(name) type = card&.dig("type_line") || card&.type_line return nil if type&.include?("Land") type rescue StandardError nil end |