class MtgSearchParser::Parser
Public Instance Methods
parse(contents)
click to toggle source
# File lib/mtg_search_parser/parser.rb, line 3 def parse(contents) case contents when /\Ac!([wubrgmlc]+)\z/i MtgSearchParser::Parsed::ExactColor.new($1) when /\Ac:([wubrgmlc]+)\z/i MtgSearchParser::Parsed::AnyColor.new($1) when /\Aci:([wubrgmlc]+)\z/i MtgSearchParser::Parsed::ColorIdentity.new($1) when /\At:"([^"]+)"\z/i, /\At:(.+)\z/i MtgSearchParser::Parsed::CardType.new($1) when /\Ao:"?([^"]+)"?\z/i MtgSearchParser::Parsed::RulesText.new($1) when /\Amana(=|>=|<=|>|<)(.+)\z/i MtgSearchParser::Parsed::ManaCost.new($1, $2) when /\A(pow|tou|cmc)(=|>=|<=|>|<)(pow|tou|cmc|\*|[0-9]+)\z/i MtgSearchParser::Parsed::PowerToughCompare.new($1, $2, $3) when /\Ar:(mythic|uncommon|common|rare|promo)\z/i MtgSearchParser::Parsed::Rarity.new($1) when /\Aa:"(.+)"\z/i, /\Aa:(.+)\z/i MtgSearchParser::Parsed::Artist.new($1) when /\Af:(standard|block|extended|vintage|classic|legacy|modern|commander)\z/i MtgSearchParser::Parsed::Legal.new($1) when /\Abanned:(standard|block|extended|vintage|classic|legacy|modern|commander)\z/i MtgSearchParser::Parsed::Banned.new($1) when /\Ae:(.+)\z/i MtgSearchParser::Parsed::Edition.new($1) when /\Al:(.+)\z/i MtgSearchParser::Parsed::Language.new($1) when /\Ayear(=|>=|<=|>|<)(.+)\z/i MtgSearchParser::Parsed::ReleaseYear.new($1, $2) when /\Ais:(.+)\z/i MtgSearchParser::Parsed::Quality.new($1) when /\A!(.+)\z/ MtgSearchParser::Parsed::ExactName.new($1) when /\A"([^"]+)"\z/ MtgSearchParser::Parsed::Name.new($1) else MtgSearchParser::Parsed::Name.new(contents) end end