vedeu 0.0.21 → 0.0.22

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: c6ed6d21f04e9b8b6f98a8d1afb25e8f020d92a6
4
- data.tar.gz: f0d1c0b2cf28c40d11d975b839fe200d2a775b20
3
+ metadata.gz: 9e848f5366e26266f101ad5e5fb0c3e0e724fc7f
4
+ data.tar.gz: e611d426fecc958f335acb8fc54c5a4d697e6638
5
5
  SHA512:
6
- metadata.gz: 2c994a800613efaed9cc001808d496252e92e4cd697854ca2fbe6d73b052cf0be9ea12609e988d865776f48165aa17b930788169a34b8034534bdb782a578ad1
7
- data.tar.gz: ed9a5b2ae734d278f040c83c91b498c1a853069efedec1c39e3c7e1aea18daf77a310f5c5444ddd416d3554db626f61d8f9fb32c98359966b454e8567690954a
6
+ metadata.gz: 165c47a59cfb6f52a3237c00b459c0aa0d38b8e797a3e8665c4686418da37aac4fc035f51aaee6e12e0c269fa04e276be15187acfa6b2546e692643726b0136c
7
+ data.tar.gz: 8e8e62514882dcfc5e71a6a4e425e3ac7633adc66ffae289e131535959751ac01a6a80a73712c399ed2c556e6441f510805f72cbf1ed1441f84df89173b83102
@@ -1,9 +1,9 @@
1
1
  Given(/^the interface "(.*?)" is defined$/) do |interface|
2
- Vedeu::Interface.create({ name: interface, entity: Vedeu::DummyInterface, options: {} })
2
+ Vedeu::InterfaceRepository.create({ name: interface, entity: Vedeu::DummyInterface, options: {} })
3
3
  end
4
4
 
5
5
  Given(/^the command "(.*?)" is defined$/) do |command|
6
- Vedeu::Command.create({ name: command, entity: Vedeu::DummyCommand, options: { keyword: command } })
6
+ Vedeu::CommandRepository.create({ name: command, entity: Vedeu::DummyCommand, options: { keyword: command } })
7
7
  end
8
8
 
9
9
  When(/^the input "(.*?)" is entered$/) do |input|
data/lib/vedeu.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'date'
2
2
  require 'logger'
3
3
  require 'io/console'
4
+ require 'virtus'
5
+ require 'yajl'
4
6
 
5
7
  require_relative 'vedeu/input/input'
6
8
 
@@ -16,6 +18,7 @@ require_relative 'vedeu/output/cursor'
16
18
  require_relative 'vedeu/output/directive'
17
19
  require_relative 'vedeu/output/foreground'
18
20
  require_relative 'vedeu/output/geometry'
21
+ require_relative 'vedeu/output/layer'
19
22
  require_relative 'vedeu/output/esc'
20
23
  require_relative 'vedeu/output/colour'
21
24
  require_relative 'vedeu/output/output'
@@ -50,6 +53,12 @@ module Vedeu
50
53
  end
51
54
  # :nocov:
52
55
 
56
+ # :nocov:
57
+ def self.included(receiver)
58
+ receiver.extend(ClassMethods)
59
+ end
60
+ # :nocov:
61
+
53
62
  private
54
63
 
55
64
  # :nocov:
@@ -1,12 +1,6 @@
1
1
  module Vedeu
2
- class Input
3
- class << self
4
- def capture
5
- new.capture
6
- end
7
- end
8
-
9
- def initialize; end
2
+ module Input
3
+ extend self
10
4
 
11
5
  def capture
12
6
  Queue.enqueue(input)
@@ -8,11 +8,6 @@ module Vedeu
8
8
  Position.set(vy(index), vx)
9
9
  end
10
10
 
11
- def z
12
- values[:z]
13
- end
14
- alias_method :layer, :z
15
-
16
11
  def y
17
12
  values[:y]
18
13
  end
@@ -72,7 +67,6 @@ module Vedeu
72
67
  {
73
68
  width: Terminal.width,
74
69
  height: Terminal.height,
75
- z: 0,
76
70
  y: 1,
77
71
  x: 1
78
72
  }
@@ -0,0 +1,9 @@
1
+ module Vedeu
2
+ class Layer
3
+ attr_reader :index
4
+
5
+ def initialize(index = 0)
6
+ @index = index || 0
7
+ end
8
+ end
9
+ end
@@ -9,8 +9,8 @@ module Vedeu
9
9
  def initialize; end
10
10
 
11
11
  def render
12
- InterfaceRepository.refresh.map do |interface|
13
- interface.map { |stream| Terminal.output(stream) if stream }
12
+ InterfaceRepository.refresh.each do |interface|
13
+ interface.each { |stream| Terminal.output(stream) if stream }
14
14
  end
15
15
  end
16
16
  end
@@ -12,7 +12,7 @@ module Vedeu
12
12
  end
13
13
  end
14
14
 
15
- def initialize(y = nil, x = nil)
15
+ def initialize(y = 1, x = 1)
16
16
  @y, @x = y, x
17
17
  end
18
18
 
@@ -23,5 +23,13 @@ module Vedeu
23
23
  private
24
24
 
25
25
  attr_accessor :y, :x
26
+
27
+ def y
28
+ @y == 0 ? 1 : @y
29
+ end
30
+
31
+ def x
32
+ @x == 0 ? 1 : @x
33
+ end
26
34
  end
27
35
  end
@@ -12,19 +12,19 @@ module Vedeu
12
12
 
13
13
  def set
14
14
  case style
15
- when :blink then Esc.blink
16
- when :blink_off then Esc.blink_off
17
- when :bold then Esc.bold
18
- when :bold_off then Esc.bold_off
19
- when :clear then Esc.clear
20
- when :hide_cursor then Cursor.hide
21
- when :inverse then Esc.inverse
22
- when :negative then Esc.negative
23
- when :positive then Esc.positive
24
- when :reset then Esc.reset
25
- when :normal then Esc.reset
26
- when :show_cursor then Cursor.show
27
- when :underline then Esc.underline
15
+ when :blink then Esc.blink
16
+ when :blink_off then Esc.blink_off
17
+ when :bold then Esc.bold
18
+ when :bold_off then Esc.bold_off
19
+ when :clear then Esc.clear
20
+ when :hide_cursor then Cursor.hide
21
+ when :inverse then Esc.inverse
22
+ when :negative then Esc.negative
23
+ when :positive then Esc.positive
24
+ when :reset then Esc.reset
25
+ when :normal then Esc.reset
26
+ when :show_cursor then Cursor.show
27
+ when :underline then Esc.underline
28
28
  when :underline_off then Esc.underline_off
29
29
  else
30
30
  ''
@@ -2,12 +2,6 @@ module Vedeu
2
2
  class Command
3
3
  attr_accessor :attributes, :name, :entity, :keyword, :keypress
4
4
 
5
- class << self
6
- def create(attributes = {})
7
- new(attributes).create
8
- end
9
- end
10
-
11
5
  def initialize(attributes = {})
12
6
  @attributes = attributes || {}
13
7
  @name = attributes[:name]
@@ -16,11 +10,6 @@ module Vedeu
16
10
  @keypress = attributes.fetch(:options, {}).fetch(:keypress, '')
17
11
  end
18
12
 
19
- def create
20
- CommandRepository.create(self)
21
- self
22
- end
23
-
24
13
  def execute(args = [])
25
14
  executable.call(*args)
26
15
  end
@@ -29,18 +18,4 @@ module Vedeu
29
18
  proc { |*args| attributes[:entity].dispatch(*args) }
30
19
  end
31
20
  end
32
-
33
- # :nocov:
34
- module ClassMethods
35
- def command(name, entity, options = {})
36
- command_name = name.is_a?(Symbol) ? name.to_s : name
37
-
38
- Command.create({ name: command_name, entity: entity, options: options })
39
- end
40
- end
41
-
42
- def self.included(receiver)
43
- receiver.extend(ClassMethods)
44
- end
45
- # :nocov:
46
21
  end
@@ -1,19 +1,36 @@
1
1
  module Vedeu
2
- class CommandRepository
2
+ module CommandRepository
3
3
  extend Repository
4
+ extend self
4
5
 
5
- class << self
6
- def by_keypress(input)
7
- query(entity, :keypress, input)
8
- end
6
+ def by_keypress(input)
7
+ query(entity, :keypress, input)
8
+ end
9
+
10
+ def by_keyword(input)
11
+ query(entity, :keyword, input)
12
+ end
13
+
14
+ def create(attributes)
15
+ super(Command.new(attributes))
16
+ end
17
+
18
+ def entity
19
+ Command
20
+ end
21
+ end
9
22
 
10
- def by_keyword(input)
11
- query(entity, :keyword, input)
12
- end
23
+ # :nocov:
24
+ module ClassMethods
25
+ def command(name, entity, options = {})
26
+ command_name = name.is_a?(Symbol) ? name.to_s : name
13
27
 
14
- def entity
15
- Command
16
- end
28
+ CommandRepository.create({
29
+ name: command_name,
30
+ entity: entity,
31
+ options: options
32
+ })
17
33
  end
18
34
  end
35
+ # :nocov:
19
36
  end
@@ -4,12 +4,6 @@ module Vedeu
4
4
 
5
5
  attr_accessor :attributes, :name, :cursor, :current
6
6
 
7
- class << self
8
- def create(attributes = {})
9
- new(attributes).create
10
- end
11
- end
12
-
13
7
  def initialize(attributes = {})
14
8
  @attributes = attributes || {}
15
9
  @name = attributes[:name]
@@ -17,12 +11,6 @@ module Vedeu
17
11
  @current = []
18
12
  end
19
13
 
20
- def create
21
- InterfaceRepository.create(self)
22
-
23
- self
24
- end
25
-
26
14
  def refresh
27
15
  if enqueued?
28
16
  @current = dequeue
@@ -47,10 +35,18 @@ module Vedeu
47
35
  @cursor ? Cursor.show : Cursor.hide
48
36
  end
49
37
 
38
+ def layer
39
+ @layer ||= Layer.new(layer_attr).index
40
+ end
41
+
50
42
  private
51
43
 
52
44
  def initial_state
53
- { name => Array.new(geometry.height) { [""] } }
45
+ { name => Array.new(geometry.height) { [''] } }
46
+ end
47
+
48
+ def layer_attr
49
+ attributes.fetch(:layer, 0)
54
50
  end
55
51
 
56
52
  def foreground
@@ -61,18 +57,4 @@ module Vedeu
61
57
  attributes[:bg] || attributes[:background]
62
58
  end
63
59
  end
64
-
65
- # :nocov:
66
- module ClassMethods
67
- def interface(name, options = {})
68
- interface_name = name.is_a?(Symbol) ? name.to_s : name
69
-
70
- Interface.create({ name: interface_name }.merge!(options))
71
- end
72
- end
73
-
74
- def self.included(receiver)
75
- receiver.extend(ClassMethods)
76
- end
77
- # :nocov:
78
60
  end
@@ -1,23 +1,42 @@
1
1
  module Vedeu
2
2
  class UndefinedInterface < StandardError; end
3
3
 
4
- class InterfaceRepository
4
+ module InterfaceRepository
5
5
  extend Repository
6
+ extend self
6
7
 
7
- class << self
8
- def find(name)
9
- result = super
10
- raise UndefinedInterface unless result
11
- result
12
- end
8
+ def create(attributes = {})
9
+ super(Interface.new(attributes))
10
+ end
11
+
12
+ def find(name)
13
+ result = super
14
+ raise UndefinedInterface unless result
15
+ result
16
+ end
17
+
18
+ def refresh
19
+ by_layer.map { |interface| interface.refresh }.compact
20
+ end
21
+
22
+ def by_layer
23
+ all.sort_by { |interface| interface.layer }
24
+ end
25
+
26
+ def entity
27
+ Interface
28
+ end
29
+ end
13
30
 
14
- def refresh
15
- all.map { |interface| interface.refresh }.compact
16
- end
31
+ # :nocov:
32
+ module ClassMethods
33
+ def interface(name, options = {})
34
+ interface_name = name.is_a?(Symbol) ? name.to_s : name
17
35
 
18
- def entity
19
- Interface
20
- end
36
+ InterfaceRepository.create({
37
+ name: interface_name
38
+ }.merge!(options))
21
39
  end
22
40
  end
41
+ # :nocov:
23
42
  end
data/lib/vedeu/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vedeu
2
- VERSION = '0.0.21'
2
+ VERSION = '0.0.22'
3
3
  end
@@ -2,25 +2,23 @@ require_relative '../../../test_helper'
2
2
 
3
3
  module Vedeu
4
4
  describe Input do
5
- let(:described_class) { Input }
6
- let(:input) { '' }
7
- let(:subject) { described_class.new }
5
+ let(:described_module) { Input }
6
+ let(:input) { 'input' }
8
7
 
9
- before { Terminal.stubs(:input).returns(input) }
10
-
11
- it 'return an Input instance' do
12
- subject.must_be_instance_of(Input)
8
+ before do
9
+ Terminal.stubs(:input).returns(input)
10
+ Queue.stubs(:enqueue).returns([input])
13
11
  end
14
12
 
15
13
  describe '.capture' do
16
- let(:subject) { described_class.capture }
14
+ let(:subject) { described_module.capture }
17
15
 
18
16
  it 'returns an Array' do
19
17
  subject.must_be_instance_of(Array)
20
18
  end
21
19
 
22
- it 'returns the entered characters' do
23
- subject.wont_be_empty
20
+ it 'returns the enqueue input' do
21
+ subject.must_equal([input])
24
22
  end
25
23
  end
26
24
  end
@@ -10,7 +10,7 @@ module Vedeu
10
10
  let(:composition) {}
11
11
 
12
12
  before do
13
- Interface.create({ name: 'dummy', width: 15, height: 2 })
13
+ InterfaceRepository.create({ name: 'dummy', width: 15, height: 2 })
14
14
  end
15
15
 
16
16
  after do
@@ -93,6 +93,22 @@ module Vedeu
93
93
  subject.must_equal(composition)
94
94
  end
95
95
  end
96
+
97
+ context 'but is a string containing new-lines' do
98
+ let(:stream) { "Some text...\nSome more text..." }
99
+ let(:composition) {
100
+ [
101
+ [
102
+ "\e[38;2;39m\e[48;2;49m\e[1;1H \e[1;1HSome text...Some more tex...\e[0m\e[38;2;39m\e[48;2;49m\e[?25h",
103
+ "\e[38;2;39m\e[48;2;49m\e[2;1H \e[2;1H\e[38;2;39m\e[48;2;49m\e[?25h"
104
+ ]
105
+ ]
106
+ }
107
+
108
+ it 'returns the enqueued composition' do
109
+ subject.must_equal(composition)
110
+ end
111
+ end
96
112
  end
97
113
 
98
114
  context 'when styled' do
@@ -15,28 +15,6 @@ module Vedeu
15
15
  described_instance.must_be_instance_of(Geometry)
16
16
  end
17
17
 
18
- describe '#z' do
19
- let(:subject) { described_instance.z }
20
-
21
- it 'returns a Fixnum' do
22
- subject.must_be_instance_of(Fixnum)
23
- end
24
-
25
- context 'using a value' do
26
- let(:values) { { z: 2 } }
27
-
28
- it 'returns the value' do
29
- subject.must_equal(2)
30
- end
31
- end
32
-
33
- context 'using the default' do
34
- it 'returns the default' do
35
- subject.must_equal(0)
36
- end
37
- end
38
- end
39
-
40
18
  describe '#y' do
41
19
  let(:subject) { described_instance.y }
42
20
 
@@ -0,0 +1,35 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ module Vedeu
4
+ describe Layer do
5
+ let(:described_class) { Layer }
6
+ let(:described_instance) { described_class.new(index) }
7
+ let(:index) {}
8
+
9
+ it 'returns a Layer instance' do
10
+ described_instance.must_be_instance_of(Layer)
11
+ end
12
+
13
+ describe '#index' do
14
+ let(:subject) { described_instance.index }
15
+
16
+ it 'returns a Fixnum' do
17
+ subject.must_be_instance_of(Fixnum)
18
+ end
19
+
20
+ context 'using a index' do
21
+ let(:index) { 2 }
22
+
23
+ it 'returns the index' do
24
+ subject.must_equal(2)
25
+ end
26
+ end
27
+
28
+ context 'using the default' do
29
+ it 'returns the default' do
30
+ subject.must_equal(0)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -4,9 +4,11 @@ module Vedeu
4
4
  describe Output do
5
5
  let(:described_class) { Output }
6
6
  let(:subject) { described_class.new }
7
+ let(:output) {}
7
8
 
8
9
  before do
9
- Interface.create({ name: 'dummy', width: 10, height: 2, cursor: true })
10
+ InterfaceRepository.create({ name: 'dummy', width: 15, height: 2, cursor: true })
11
+ Terminal.stubs(:output).returns(output)
10
12
  end
11
13
 
12
14
  after { InterfaceRepository.reset }
@@ -17,6 +19,34 @@ module Vedeu
17
19
 
18
20
  describe '.render' do
19
21
  let(:subject) { described_class.render }
22
+
23
+ context 'when the interfaces have content' do
24
+ let(:output) {
25
+ [
26
+ [
27
+ "\e[38;2;39m\e[48;2;49m\e[1;1H \e[1;1HTesting Outpu...\e[0m\e[38;2;39m\e[48;2;49m\e[?25h",
28
+ "\e[38;2;39m\e[48;2;49m\e[2;1H \e[2;1H\e[38;2;39m\e[48;2;49m\e[?25h"
29
+ ]
30
+ ]
31
+ }
32
+
33
+ before { Compositor.arrange({ 'dummy' => 'Testing Output.render' }) }
34
+
35
+ it { subject.must_equal(output) }
36
+ end
37
+
38
+ context 'when the interfaces have no content' do
39
+ let(:output) {
40
+ [
41
+ [
42
+ "\e[38;2;39m\e[48;2;49m\e[1;1H \e[1;1H\e[38;2;39m\e[48;2;49m\e[?25h",
43
+ "\e[38;2;39m\e[48;2;49m\e[2;1H \e[2;1H\e[38;2;39m\e[48;2;49m\e[?25h"
44
+ ]
45
+ ]
46
+ }
47
+
48
+ it { subject.must_equal(output) }
49
+ end
20
50
  end
21
51
  end
22
52
  end
@@ -64,6 +64,14 @@ module Vedeu
64
64
  end
65
65
  end
66
66
 
67
+ context 'when the style is negative' do
68
+ let(:style) { :negative }
69
+
70
+ it 'returns an escape sequence' do
71
+ subject.must_equal("\e[7m")
72
+ end
73
+ end
74
+
67
75
  context 'when the style is inverse' do
68
76
  let(:style) { :inverse }
69
77
 
@@ -16,11 +16,12 @@ module Vedeu
16
16
  let(:command) { Command.new }
17
17
 
18
18
  before do
19
- Interface.create({ name: 'dummy' })
19
+ InterfaceRepository.create({ name: 'dummy', width: 15, height: 2 })
20
20
  Queue.stubs(:dequeue).returns(input)
21
21
  CommandRepository.stubs(:by_keypress).returns(command)
22
22
  CommandRepository.stubs(:by_keyword).returns(command)
23
23
  command.stubs(:execute).returns(result)
24
+ Compositor.stubs(:arrange).returns([])
24
25
  end
25
26
 
26
27
  after do
@@ -3,20 +3,26 @@ require_relative '../../../test_helper'
3
3
  module Vedeu
4
4
  describe CommandRepository do
5
5
  let(:described_class) { CommandRepository }
6
- let(:input) { }
6
+ let(:input) {}
7
7
 
8
8
  before do
9
- Command.create({ name: 'apple',
10
- entity: DummyCommand,
11
- options: { keypress: 'a', keyword: 'apple' } })
12
- Command.create({ name: 'banana',
13
- entity: DummyCommand,
14
- options: { keypress: 'b', keyword: 'banana' } })
9
+ CommandRepository.create({ name: 'apple',
10
+ entity: DummyCommand,
11
+ options: {
12
+ keypress: 'a',
13
+ keyword: 'apple'
14
+ }
15
+ })
16
+ CommandRepository.create({ name: 'banana',
17
+ entity: DummyCommand,
18
+ options: {
19
+ keypress: 'b',
20
+ keyword: 'banana'
21
+ }
22
+ })
15
23
  end
16
24
 
17
- after do
18
- CommandRepository.reset
19
- end
25
+ after { CommandRepository.reset }
20
26
 
21
27
  describe '.by_keypress' do
22
28
  let(:subject) { described_class.by_keypress(input) }
@@ -40,14 +40,6 @@ module Vedeu
40
40
  subject.instance_variable_get('@keypress').must_equal('d')
41
41
  end
42
42
 
43
- describe '#create' do
44
- let(:subject) { described_class.create(attributes) }
45
-
46
- it 'returns a Command instance' do
47
- subject.must_be_instance_of(Command)
48
- end
49
- end
50
-
51
43
  describe '#execute' do
52
44
  let(:subject) { described_instance.execute(args) }
53
45
  let(:args) { [] }
@@ -4,7 +4,7 @@ module Vedeu
4
4
  describe InterfaceRepository do
5
5
  let(:described_class) { InterfaceRepository }
6
6
 
7
- before { Interface.create({ name: 'dummy' }) }
7
+ before { InterfaceRepository.create({ name: 'dummy', width: 15, height: 2 }) }
8
8
  after { InterfaceRepository.reset }
9
9
 
10
10
  describe '.find' do
@@ -43,5 +43,25 @@ module Vedeu
43
43
  subject.must_equal(Interface)
44
44
  end
45
45
  end
46
+
47
+ describe '.by_layer' do
48
+ let(:subject) { described_class.by_layer }
49
+
50
+ before do
51
+ InterfaceRepository.reset
52
+ @case_a = InterfaceRepository.create({ name: 'a', width: 15, height: 2, layer: 1 })
53
+ @case_b = InterfaceRepository.create({ name: 'b', width: 15, height: 2, layer: 0 })
54
+ @case_c = InterfaceRepository.create({ name: 'c', width: 15, height: 2, layer: 2 })
55
+ end
56
+ after { InterfaceRepository.reset }
57
+
58
+ it 'returns an Array' do
59
+ subject.must_be_instance_of(Array)
60
+ end
61
+
62
+ it 'returns the collection in order they should be drawn' do
63
+ subject.must_equal([@case_b, @case_a, @case_c])
64
+ end
65
+ end
46
66
  end
47
67
  end
@@ -8,8 +8,8 @@ module Vedeu
8
8
  let(:attributes) {
9
9
  {
10
10
  name: 'dummy',
11
- width: 10,
12
- height: 5,
11
+ width: 15,
12
+ height: 2,
13
13
  x: 1,
14
14
  y: 1,
15
15
  fg: :red,
@@ -19,7 +19,7 @@ module Vedeu
19
19
  }
20
20
  let(:result) {}
21
21
 
22
- before { Interface.create(attributes) }
22
+ before { InterfaceRepository.create(attributes) }
23
23
  after { InterfaceRepository.reset }
24
24
 
25
25
  it 'returns an Interface instance' do
@@ -34,14 +34,6 @@ module Vedeu
34
34
  subject.instance_variable_get('@name').must_equal('dummy')
35
35
  end
36
36
 
37
- describe '#create' do
38
- let(:subject) { described_class.create(attributes) }
39
-
40
- it 'returns an Interface' do
41
- subject.must_be_instance_of(Interface)
42
- end
43
- end
44
-
45
37
  describe '#refresh' do
46
38
  let(:subject) { described_instance.refresh }
47
39
 
@@ -140,7 +140,7 @@ module Vedeu
140
140
  end
141
141
 
142
142
  it 'returns an escape sequence' do
143
- subject.must_equal("\e[0;1H \e[0;1H")
143
+ subject.must_equal("\e[1;1H \e[1;1H")
144
144
  end
145
145
  end
146
146
 
data/vedeu.gemspec CHANGED
@@ -30,4 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'rake', '10.3.2'
31
31
  spec.add_development_dependency 'rubocop'
32
32
  spec.add_development_dependency 'simplecov', '0.8.2'
33
+
34
+ spec.add_dependency "virtus"
35
+ spec.add_dependency "yajl-ruby"
33
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vedeu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-20 00:00:00.000000000 Z
11
+ date: 2014-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aruba
@@ -192,6 +192,34 @@ dependencies:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
194
  version: 0.8.2
195
+ - !ruby/object:Gem::Dependency
196
+ name: virtus
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: yajl-ruby
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
195
223
  description:
196
224
  email:
197
225
  - gavinlaking@gmail.com
@@ -236,6 +264,7 @@ files:
236
264
  - lib/vedeu/output/esc.rb
237
265
  - lib/vedeu/output/foreground.rb
238
266
  - lib/vedeu/output/geometry.rb
267
+ - lib/vedeu/output/layer.rb
239
268
  - lib/vedeu/output/output.rb
240
269
  - lib/vedeu/output/position.rb
241
270
  - lib/vedeu/output/style.rb
@@ -267,6 +296,7 @@ files:
267
296
  - test/lib/vedeu/output/esc_test.rb
268
297
  - test/lib/vedeu/output/foreground_test.rb
269
298
  - test/lib/vedeu/output/geometry_test.rb
299
+ - test/lib/vedeu/output/layer_test.rb
270
300
  - test/lib/vedeu/output/output_test.rb
271
301
  - test/lib/vedeu/output/position_test.rb
272
302
  - test/lib/vedeu/output/style_test.rb
@@ -330,6 +360,7 @@ test_files:
330
360
  - test/lib/vedeu/output/esc_test.rb
331
361
  - test/lib/vedeu/output/foreground_test.rb
332
362
  - test/lib/vedeu/output/geometry_test.rb
363
+ - test/lib/vedeu/output/layer_test.rb
333
364
  - test/lib/vedeu/output/output_test.rb
334
365
  - test/lib/vedeu/output/position_test.rb
335
366
  - test/lib/vedeu/output/style_test.rb