class Tamiyo::Yaml::YamlSource
Constants
- Prototype
Public Instance Methods
parse_card_data_from(events, proto)
click to toggle source
# File lib/tamiyo/yaml/yaml_source.rb, line 27 def parse_card_data_from(events, proto) events.on_keys( 'name' => ->{ proto.name = events.assume_scalar }, 'identity' => ->{ events.each_within_sequence do proto.colors << events.assume_scalar end }, 'mana cost' => ->{ events.on_types( scalar: ->{ proto.cost = events.value }, seq: ->{ events.each_within_sequence do proto.cost ||= [] proto.cost << events.assume_scalar end }) }, 'type' => ->{ proto.type = events.assume_scalar }, 'text' => ->{ proto.text = events.assume_scalar }, 'pt' => ->{ proto.pt = events.assume_scalar }, 'loyalty' => ->{ proto.loyalty = events.assume_scalar }, 'row' => ->{ proto.table_row = events.assume_scalar.to_sym }, 'played tapped' => ->{ events.assume_scalar proto.played_tapped = true }, 'picture url' => ->{ proto.picture_url = events.assume_scalar }) end
pull()
click to toggle source
# File lib/tamiyo/yaml/yaml_source.rb, line 12 def pull using_object [] do |cards| with_the_cards_file do |events| events.each_within_sequence do proto = using_object(Prototype.new) do |proto| events.each_within_mapping do parse_card_data_from(events, proto) end end cards << proto.build_card end end end end
using_object(obj) { |obj| ... }
click to toggle source
# File lib/tamiyo/yaml/yaml_source.rb, line 63 def using_object(obj) yield obj obj end
with_the_cards_file() { |yaml_event_stream_for file| ... }
click to toggle source
# File lib/tamiyo/yaml/yaml_source.rb, line 53 def with_the_cards_file data_store = DataStore.new path = data_store.path_for 'cards.yaml' if block_given? File.open(path, 'r') do |file| yield yaml_event_stream_for file end end end