tamiyo 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bbf3ec46f9860183fa06e9c767262c3c214f5562
4
- data.tar.gz: 955834fbde1e9d80fad20ebf9715a360683de6a4
3
+ metadata.gz: 527fdba4dbb9759b8be539f14206394b69aab164
4
+ data.tar.gz: ba0f4e61cbeab758110ee0e520c5f9f31308b6aa
5
5
  SHA512:
6
- metadata.gz: ea01d30d6f7c33ae1ab5ec49536a669515b61fa750f0d847ad0428f7295c1a4ec550596ff763c4a8a4dc2d60d35b54ecad819485ced4d96e9a214a4281536db9
7
- data.tar.gz: 9606a0a8b306362f15c54d946ca416a1567071ed1e3c3618b65c85fd02fd5e9846a8f640b6429f9d54d5053cf596ae8fb201a87b6a84f026270821bb8aa08172
6
+ metadata.gz: 6bee9adaeeca82b32368e8568b098b7dead21b02750c37a7a25833b2d358c45060146e6efd9682fb2ae6c195975b67666ca190eff97c59d9ba65588d4fe206e2
7
+ data.tar.gz: 864902830e5d896d3f630ed1601f4d6876f1c0b439f729b1e6b868c1f5daf8a915b24e8d20aa84e8dc3b06561089284eb049332ef023fac532e70f2187560bd5
@@ -1,11 +1,11 @@
1
1
  require_relative 'dummy_scrape'
2
2
  require_relative 'scrape_parser'
3
- require_relative 'puts_sink'
3
+ require_relative 'yaml_sink'
4
4
 
5
5
  module Tamiyo
6
6
  class DummyScrapeChain
7
7
  def self.create
8
- Process.chain DummyScrape.new, ScrapeParser.new, PutsSink.new
8
+ Process.chain DummyScrape.new, ScrapeParser.new, YamlSink.new
9
9
  end
10
10
  end
11
11
  end
@@ -1,11 +1,11 @@
1
1
  require_relative 'gatherer_scrape'
2
2
  require_relative 'scrape_parser'
3
- require_relative 'puts_sink'
3
+ require_relative 'yaml_sink'
4
4
 
5
5
  module Tamiyo
6
6
  class GathererScrapeChain
7
7
  def self.create(set)
8
- Process.chain GathererScrape.new(set), ScrapeParser.new, PutsSink.new
8
+ Process.chain GathererScrape.new(set), ScrapeParser.new, YamlSink.new
9
9
  end
10
10
  end
11
11
  end
@@ -90,13 +90,13 @@ module Tamiyo
90
90
  @text.include?('{T}') && @text.include?('to your mana pool')
91
91
  case main_type_based_on @type
92
92
  when /Land/, mana_source
93
- :first_row
93
+ :first
94
94
  when /Sorcery|Instant/
95
95
  :stack
96
96
  when /Creature/
97
- :third_row
97
+ :third
98
98
  else
99
- :second_row
99
+ :second
100
100
  end
101
101
  end
102
102
 
@@ -1,3 +1,3 @@
1
1
  module Tamiyo
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,45 @@
1
+ require 'yaml'
2
+
3
+ module Tamiyo
4
+ module YamlHelper
5
+ def setup_yaml_emitter_for(file)
6
+ @emit = YAML::Emitter.new file
7
+ end
8
+
9
+ def emit_start_of_one_document
10
+ @emit.start_stream Psych::Nodes::Stream::UTF8
11
+ @emit.start_document [1, 1], [], true
12
+ end
13
+
14
+ def emit_end_of_one_document
15
+ @emit.end_document true
16
+ @emit.end_stream
17
+ end
18
+
19
+ def emit_block_sequence
20
+ @emit.start_sequence nil, nil, true, YAML::Nodes::Sequence::BLOCK
21
+ yield
22
+ @emit.end_sequence
23
+ end
24
+
25
+ def emit_flow_sequence
26
+ @emit.start_sequence nil, nil, true, YAML::Nodes::Sequence::FLOW
27
+ yield
28
+ @emit.end_sequence
29
+ end
30
+
31
+ def emit_block_mapping
32
+ @emit.start_mapping nil, nil, true, YAML::Nodes::Mapping::BLOCK
33
+ yield
34
+ @emit.end_mapping
35
+ end
36
+
37
+ def emit_plain(value)
38
+ @emit.scalar value, nil, nil, true, false, Psych::Nodes::Scalar::PLAIN
39
+ end
40
+
41
+ def emit_literal(value)
42
+ @emit.scalar value, nil, nil, false, true, YAML::Nodes::Scalar::LITERAL
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,70 @@
1
+ require 'fileutils'
2
+ require_relative 'process'
3
+ require_relative 'yaml_helper'
4
+
5
+ module Tamiyo
6
+ class YamlSink
7
+ include Process::Node
8
+ include YamlHelper
9
+
10
+ def pump
11
+ with_the_cards_file do
12
+ emit_block_sequence do
13
+ @chain.pull.each do |card|
14
+ emit_block_mapping do
15
+ emit_pair 'name', card.name
16
+ emit_pair 'identity', card.colors.first if card.colors.one?
17
+ emit_pair_with_sequence_value 'identity', card.colors unless card.colors.length > 1
18
+ emit_pair 'mana cost', card.cost
19
+ emit_pair 'type', card.type
20
+ emit_pair_with_literal_value 'text', card.text
21
+ emit_pair 'pt', card.pt if card.pt
22
+ emit_pair 'loyalty', card.loyalty if card.loyalty
23
+ emit_pair 'played tapped', 'true' if card.played_tapped
24
+ emit_pair 'row', card.table_row.to_s
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ def emit_pair(key, value)
32
+ emit_plain key
33
+ emit_plain value
34
+ end
35
+
36
+ def emit_pair_with_literal_value(key, value)
37
+ emit_plain key
38
+ emit_literal value
39
+ end
40
+
41
+ def emit_pair_with_sequence_value(key, value)
42
+ emit_plain key
43
+ emit_flow_sequence do
44
+ value.each {|element| emit_plain element}
45
+ end
46
+ end
47
+
48
+ def with_the_cards_file(&block)
49
+ file_name = prepare_for_card_file
50
+ if block_given?
51
+ File.open(file_name, 'w') do |file|
52
+ within_a_yaml_document_of file, &block
53
+ end
54
+ end
55
+ end
56
+
57
+ def prepare_for_card_file
58
+ data_dir = File.join Dir.home, '.tamiyo'
59
+ FileUtils.mkpath data_dir
60
+ File.join data_dir, 'cards.yaml'
61
+ end
62
+
63
+ def within_a_yaml_document_of(file)
64
+ setup_yaml_emitter_for file
65
+ emit_start_of_one_document
66
+ yield
67
+ emit_end_of_one_document
68
+ end
69
+ end
70
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tamiyo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roger Norling
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-09 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,10 +60,11 @@ files:
60
60
  - lib/tamiyo/gatherer_scrape.rb
61
61
  - lib/tamiyo/gatherer_scrape_chain.rb
62
62
  - lib/tamiyo/process.rb
63
- - lib/tamiyo/puts_sink.rb
64
63
  - lib/tamiyo/scrape_parser.rb
65
64
  - lib/tamiyo/value.rb
66
65
  - lib/tamiyo/version.rb
66
+ - lib/tamiyo/yaml_helper.rb
67
+ - lib/tamiyo/yaml_sink.rb
67
68
  - tamiyo.gemspec
68
69
  homepage: https://github.com/rogernorling/tamiyo#readme
69
70
  licenses:
@@ -1,11 +0,0 @@
1
- require_relative 'process'
2
-
3
- module Tamiyo
4
- class PutsSink
5
- include Process::Node
6
-
7
- def pump
8
- puts @chain.pull.inspect
9
- end
10
- end
11
- end