tamiyo 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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