vedeu 0.0.5 → 0.0.6
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 +4 -4
- data/README.md +16 -18
- data/lib/vedeu.rb +0 -2
- data/lib/vedeu/application.rb +21 -7
- data/lib/vedeu/interface/interfaces.rb +21 -17
- data/lib/vedeu/output/compositor.rb +4 -12
- data/lib/vedeu/output/translator.rb +4 -20
- data/lib/vedeu/process/commands.rb +17 -34
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/application_test.rb +3 -6
- data/test/lib/vedeu/interface/interfaces_test.rb +33 -20
- data/test/lib/vedeu/output/compositor_test.rb +1 -1
- data/test/lib/vedeu/output/style_test.rb +6 -0
- data/test/lib/vedeu/output/translator_test.rb +3 -4
- data/test/lib/vedeu/process/commands_test.rb +13 -21
- data/test/lib/vedeu/support/terminal_test.rb +18 -0
- metadata +2 -5
- data/lib/vedeu/process/process.rb +0 -33
- data/test/lib/vedeu/process/process_test.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3051d98a552c6a3129de526b25593c3e7f0be00
|
4
|
+
data.tar.gz: 32c2e964c4556e84f06f02bd0278fd466281693b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9fd3e03a60603baf573466fcf384b8b625fa5be156ab87e321c060eb391fbe84b1113ff4f27c1dc1a0fbc307fb536802436a894c958f864b5f1b2ea24564d8b
|
7
|
+
data.tar.gz: a09c6e80a05b2a44bfc029b563acbb79d09d2fd16b00355b29d074176a72090d2a2dd3745e12b17a5b414f7b2c953f50a7f7278294ae682e634e029faf101ac2
|
data/README.md
CHANGED
@@ -28,24 +28,6 @@ TODO: Write detailed documentation
|
|
28
28
|
|-- Interfaces
|
29
29
|
| |-- Dummy < Interface
|
30
30
|
|
|
31
|
-
|-- Process
|
32
|
-
| |-- Commands
|
33
|
-
| | |-- Command
|
34
|
-
| |
|
35
|
-
| |-- Compositor
|
36
|
-
| | |-- Directive
|
37
|
-
| | | |-- Colour
|
38
|
-
| | | | |-- Foreground < Base
|
39
|
-
| | | | |-- Background < Base
|
40
|
-
| | | |
|
41
|
-
| | | |-- Position
|
42
|
-
| | | |-- Style
|
43
|
-
| | | |-- Esc
|
44
|
-
| | |
|
45
|
-
| | |-- Terminal
|
46
|
-
| |
|
47
|
-
| |-- Terminal
|
48
|
-
|
|
49
31
|
|-- Terminal
|
50
32
|
|
51
33
|
Base
|
@@ -53,6 +35,22 @@ TODO: Write detailed documentation
|
|
53
35
|
|-- Esc
|
54
36
|
|
55
37
|
Interface
|
38
|
+
|-- Commands
|
39
|
+
| |-- Command
|
40
|
+
| |-- Exit
|
41
|
+
|
|
42
|
+
|-- Compositor
|
43
|
+
| |-- Directive
|
44
|
+
| | |-- Colour
|
45
|
+
| | | |-- Foreground < Base
|
46
|
+
| | | |-- Background < Base
|
47
|
+
| | |
|
48
|
+
| | |-- Position
|
49
|
+
| | |-- Style
|
50
|
+
| | |-- Esc
|
51
|
+
| |
|
52
|
+
| |-- Terminal
|
53
|
+
|
|
56
54
|
|-- Terminal
|
57
55
|
|
58
56
|
Terminal
|
data/lib/vedeu.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'io/console'
|
2
|
-
require 'singleton'
|
3
2
|
|
4
3
|
require_relative 'vedeu/support/terminal'
|
5
4
|
|
@@ -21,7 +20,6 @@ require_relative 'vedeu/interface/dummy'
|
|
21
20
|
require_relative 'vedeu/process/commands'
|
22
21
|
require_relative 'vedeu/process/command'
|
23
22
|
require_relative 'vedeu/process/exit'
|
24
|
-
require_relative 'vedeu/process/process'
|
25
23
|
|
26
24
|
require_relative 'vedeu/application'
|
27
25
|
require_relative 'vedeu/version'
|
data/lib/vedeu/application.rb
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
module Vedeu
|
2
2
|
class Application
|
3
3
|
class << self
|
4
|
-
def start(
|
5
|
-
new(
|
4
|
+
def start(options = {})
|
5
|
+
new(options).main_sequence
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@
|
9
|
+
def initialize(options = {})
|
10
|
+
@options = options
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def main_sequence
|
14
14
|
Terminal.open(options) do
|
15
|
-
|
15
|
+
initial_state
|
16
|
+
|
17
|
+
event_loop
|
16
18
|
end
|
17
19
|
ensure
|
18
20
|
Terminal.close
|
@@ -20,7 +22,19 @@ module Vedeu
|
|
20
22
|
|
21
23
|
private
|
22
24
|
|
23
|
-
attr_reader :
|
25
|
+
attr_reader :options
|
26
|
+
|
27
|
+
def event_loop
|
28
|
+
interfaces.event_loop
|
29
|
+
end
|
30
|
+
|
31
|
+
def initial_state
|
32
|
+
interfaces.initial_state
|
33
|
+
end
|
34
|
+
|
35
|
+
def interfaces
|
36
|
+
@interfaces ||= Interfaces.defined || Interfaces.default
|
37
|
+
end
|
24
38
|
|
25
39
|
def options
|
26
40
|
defaults.merge!(@options)
|
@@ -1,21 +1,27 @@
|
|
1
1
|
module Vedeu
|
2
2
|
class UndefinedInterface < StandardError; end
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
def default
|
7
|
-
new { |io| io.add(:dummy, Dummy) }
|
8
|
-
end
|
4
|
+
module Interfaces
|
5
|
+
extend self
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
end
|
7
|
+
def default
|
8
|
+
add(:dummy, Dummy)
|
13
9
|
end
|
14
10
|
|
15
|
-
def
|
16
|
-
|
11
|
+
def defined
|
12
|
+
interfaces.empty? ? nil : interfaces
|
13
|
+
end
|
14
|
+
|
15
|
+
def define(&block)
|
16
|
+
if block_given?
|
17
|
+
yield self
|
18
|
+
else
|
19
|
+
self
|
20
|
+
end
|
21
|
+
end
|
17
22
|
|
18
|
-
|
23
|
+
def list
|
24
|
+
interfaces.inspect
|
19
25
|
end
|
20
26
|
|
21
27
|
def add(name, klass, options = {})
|
@@ -25,10 +31,6 @@ module Vedeu
|
|
25
31
|
end
|
26
32
|
end
|
27
33
|
|
28
|
-
def show
|
29
|
-
interfaces
|
30
|
-
end
|
31
|
-
|
32
34
|
def initial_state
|
33
35
|
interfaces.values.map { |io| io.call.initial_state }
|
34
36
|
end
|
@@ -39,11 +41,13 @@ module Vedeu
|
|
39
41
|
|
40
42
|
private
|
41
43
|
|
42
|
-
attr_accessor :interfaces
|
43
|
-
|
44
44
|
def valid?(klass)
|
45
45
|
raise UndefinedInterface unless Object.const_defined?(klass.to_s)
|
46
46
|
true
|
47
47
|
end
|
48
|
+
|
49
|
+
def interfaces
|
50
|
+
@interfaces ||= {}
|
51
|
+
end
|
48
52
|
end
|
49
53
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module Vedeu
|
2
2
|
class Compositor
|
3
3
|
class << self
|
4
|
-
def write(output = []
|
4
|
+
def write(output = [])
|
5
5
|
return if output.nil? || output.empty?
|
6
6
|
|
7
|
-
new(output
|
7
|
+
new(output).write
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
def initialize(output = []
|
12
|
-
@output
|
11
|
+
def initialize(output = [])
|
12
|
+
@output = output
|
13
13
|
end
|
14
14
|
|
15
15
|
def write
|
@@ -48,13 +48,5 @@ module Vedeu
|
|
48
48
|
def write_line(data)
|
49
49
|
Terminal.output(data)
|
50
50
|
end
|
51
|
-
|
52
|
-
def options
|
53
|
-
defaults.merge!(@options)
|
54
|
-
end
|
55
|
-
|
56
|
-
def defaults
|
57
|
-
{}
|
58
|
-
end
|
59
51
|
end
|
60
52
|
end
|
@@ -12,7 +12,7 @@ module Vedeu
|
|
12
12
|
|
13
13
|
def translate
|
14
14
|
return unless valid?
|
15
|
-
[
|
15
|
+
[16, red, green, blue].inject(:+)
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
@@ -20,31 +20,15 @@ module Vedeu
|
|
20
20
|
attr_reader :html_colour
|
21
21
|
|
22
22
|
def red
|
23
|
-
(html_colour[1..2].to_i(16) /
|
23
|
+
(html_colour[1..2].to_i(16) / 51) * 36
|
24
24
|
end
|
25
25
|
|
26
26
|
def green
|
27
|
-
(html_colour[3..4].to_i(16) /
|
27
|
+
(html_colour[3..4].to_i(16) / 51) * 6
|
28
28
|
end
|
29
29
|
|
30
30
|
def blue
|
31
|
-
(html_colour[5..6].to_i(16) /
|
32
|
-
end
|
33
|
-
|
34
|
-
def colour_divide
|
35
|
-
source_values / target_values
|
36
|
-
end
|
37
|
-
|
38
|
-
def source_values
|
39
|
-
256
|
40
|
-
end
|
41
|
-
|
42
|
-
def target_values
|
43
|
-
5
|
44
|
-
end
|
45
|
-
|
46
|
-
def term_colour_base
|
47
|
-
16
|
31
|
+
(html_colour[5..6].to_i(16) / 51) * 1
|
48
32
|
end
|
49
33
|
|
50
34
|
def valid?
|
@@ -1,38 +1,16 @@
|
|
1
1
|
module Vedeu
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
# def define(name, klass, args = [], options = {}, &block)
|
12
|
-
# instance.define(name, klass, args = [], options = {})
|
13
|
-
# end
|
14
|
-
|
15
|
-
def execute(command = "")
|
16
|
-
instance.execute(command)
|
17
|
-
end
|
18
|
-
|
19
|
-
def list
|
20
|
-
instance.list
|
2
|
+
module Commands
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def define(&block)
|
6
|
+
if block_given?
|
7
|
+
yield self
|
8
|
+
else
|
9
|
+
self
|
21
10
|
end
|
22
11
|
end
|
23
12
|
|
24
|
-
def
|
25
|
-
@commands ||= { 'exit' => Proc.new { Exit.dispatch } }
|
26
|
-
|
27
|
-
yield self if block_given?
|
28
|
-
end
|
29
|
-
|
30
|
-
def define(name, klass, args = [], options = {})
|
31
|
-
commands.merge!(Command.define(name, klass, args, options))
|
32
|
-
end
|
33
|
-
alias_method :add, :define
|
34
|
-
|
35
|
-
def execute(command)
|
13
|
+
def execute(command = "")
|
36
14
|
commands.fetch(command).call if exists?(command)
|
37
15
|
end
|
38
16
|
|
@@ -40,13 +18,18 @@ module Vedeu
|
|
40
18
|
commands.inspect
|
41
19
|
end
|
42
20
|
|
43
|
-
|
21
|
+
def add(name, klass, args = [], options = {})
|
22
|
+
commands.merge!(Command.define(name, klass, args, options))
|
23
|
+
end
|
44
24
|
|
45
|
-
|
46
|
-
attr_accessor :instance
|
25
|
+
private
|
47
26
|
|
48
27
|
def exists?(command)
|
49
28
|
commands.fetch(command, false)
|
50
29
|
end
|
30
|
+
|
31
|
+
def commands
|
32
|
+
@commands ||= { 'exit' => Proc.new { Exit.dispatch } }
|
33
|
+
end
|
51
34
|
end
|
52
35
|
end
|
data/lib/vedeu/version.rb
CHANGED
@@ -3,14 +3,11 @@ require_relative '../../test_helper'
|
|
3
3
|
module Vedeu
|
4
4
|
describe Application do
|
5
5
|
let(:described_class) { Application }
|
6
|
-
let(:instance) { described_class.new(
|
7
|
-
let(:interfaces) {}
|
6
|
+
let(:instance) { described_class.new(options) }
|
8
7
|
let(:options) { {} }
|
9
8
|
|
10
|
-
describe '
|
11
|
-
|
12
|
-
|
13
|
-
subject { instance.start }
|
9
|
+
describe '.start' do
|
10
|
+
subject { described_class.start(options) }
|
14
11
|
|
15
12
|
it { skip }
|
16
13
|
end
|
@@ -1,35 +1,43 @@
|
|
1
1
|
require_relative '../../../test_helper'
|
2
2
|
|
3
3
|
module Vedeu
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
class DummyInterface < Interface
|
5
|
+
def initial_state; end
|
6
|
+
|
7
|
+
def event_loop; end
|
8
|
+
end
|
8
9
|
|
9
|
-
|
10
|
+
describe Interfaces do
|
11
|
+
let(:described_class) { Interfaces }
|
10
12
|
|
11
13
|
describe '.default' do
|
12
14
|
subject { described_class.default }
|
13
15
|
|
14
|
-
it { subject.must_be_instance_of(
|
16
|
+
it { subject.must_be_instance_of(Hash) }
|
15
17
|
|
16
18
|
it 'adds the dummy interface to the interface list' do
|
17
|
-
|
19
|
+
described_class.list.wont_be_empty
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
23
|
+
describe '.defined' do
|
24
|
+
subject { described_class.defined }
|
25
|
+
|
26
|
+
it { subject.must_be_instance_of(Hash) }
|
27
|
+
end
|
28
|
+
|
21
29
|
describe '.define' do
|
22
30
|
subject { described_class.define }
|
23
31
|
|
24
|
-
it { subject.must_be_instance_of(
|
32
|
+
it { subject.must_be_instance_of(Module) }
|
25
33
|
end
|
26
34
|
|
27
|
-
describe '
|
28
|
-
let(:
|
29
|
-
let(:klass)
|
30
|
-
let(:options)
|
35
|
+
describe '.add' do
|
36
|
+
let(:interface) {}
|
37
|
+
let(:klass) { DummyInterface }
|
38
|
+
let(:options) { {} }
|
31
39
|
|
32
|
-
subject {
|
40
|
+
subject { described_class.add(interface, klass, options) }
|
33
41
|
|
34
42
|
it { subject.must_be_instance_of(Hash) }
|
35
43
|
|
@@ -42,20 +50,25 @@ module Vedeu
|
|
42
50
|
end
|
43
51
|
end
|
44
52
|
|
45
|
-
describe '
|
46
|
-
subject {
|
53
|
+
describe '.list' do
|
54
|
+
subject { described_class.list }
|
47
55
|
|
48
|
-
it { subject.must_be_instance_of(
|
56
|
+
it { subject.must_be_instance_of(String) }
|
49
57
|
end
|
50
58
|
|
51
|
-
describe '
|
52
|
-
subject {
|
59
|
+
describe '.initial_state' do
|
60
|
+
subject { described_class.initial_state }
|
53
61
|
|
54
62
|
it { subject.must_be_instance_of(Array) }
|
55
63
|
end
|
56
64
|
|
57
|
-
describe '
|
58
|
-
|
65
|
+
describe '.event_loop' do
|
66
|
+
before do
|
67
|
+
Terminal.stubs(:input)
|
68
|
+
Commands.stubs(:execute).returns(:stop)
|
69
|
+
end
|
70
|
+
|
71
|
+
subject { described_class.event_loop }
|
59
72
|
|
60
73
|
it { subject.must_be_instance_of(Array) }
|
61
74
|
end
|
@@ -43,6 +43,12 @@ module Vedeu
|
|
43
43
|
it { subject.must_equal("\e[0m") }
|
44
44
|
end
|
45
45
|
|
46
|
+
context 'when the style is normal' do
|
47
|
+
let(:style) { :normal }
|
48
|
+
|
49
|
+
it { subject.must_equal("\e[0m") }
|
50
|
+
end
|
51
|
+
|
46
52
|
context 'when the style is show_cursor' do
|
47
53
|
let(:style) { :show_cursor }
|
48
54
|
|
@@ -2,11 +2,10 @@ require_relative '../../../test_helper'
|
|
2
2
|
|
3
3
|
module Vedeu
|
4
4
|
describe Translator do
|
5
|
-
let(:described_class)
|
6
|
-
let(:instance) { described_class.new(html_colour) }
|
5
|
+
let(:described_class) { Translator }
|
7
6
|
let(:html_colour) {}
|
8
7
|
|
9
|
-
it {
|
8
|
+
it { described_class.new(html_colour).must_be_instance_of(Translator) }
|
10
9
|
|
11
10
|
describe '#translate' do
|
12
11
|
{
|
@@ -31,7 +30,7 @@ module Vedeu
|
|
31
30
|
described_class.translate.must_equal(nil)
|
32
31
|
end
|
33
32
|
|
34
|
-
it 'returns nil when the wrong type' do
|
33
|
+
it 'returns nil when the wrong type!' do
|
35
34
|
described_class.translate(:wrong_type).must_equal(nil)
|
36
35
|
end
|
37
36
|
|
@@ -1,16 +1,20 @@
|
|
1
1
|
require_relative '../../../test_helper'
|
2
2
|
|
3
3
|
module Vedeu
|
4
|
-
class
|
5
|
-
def self.dispatch
|
4
|
+
class DummyCommand
|
5
|
+
def self.dispatch
|
6
|
+
:noop
|
7
|
+
end
|
6
8
|
end
|
7
9
|
|
8
10
|
describe Commands do
|
9
|
-
let(:described_class)
|
10
|
-
|
11
|
-
|
11
|
+
let(:described_class) { Commands }
|
12
|
+
|
13
|
+
describe '.define' do
|
14
|
+
subject { described_class.define }
|
12
15
|
|
13
|
-
|
16
|
+
it { skip }
|
17
|
+
end
|
14
18
|
|
15
19
|
describe '.execute' do
|
16
20
|
subject { described_class.execute }
|
@@ -24,27 +28,15 @@ module Vedeu
|
|
24
28
|
it { subject.must_be_instance_of(String) }
|
25
29
|
end
|
26
30
|
|
27
|
-
describe '
|
31
|
+
describe '.add' do
|
28
32
|
let(:command_name) { "some_name" }
|
29
|
-
let(:command_klass) {
|
33
|
+
let(:command_klass) { DummyCommand }
|
30
34
|
let(:args) { [] }
|
31
35
|
let(:options) { {} }
|
32
36
|
|
33
|
-
subject {
|
37
|
+
subject { described_class.add(command_name, command_klass, args, options) }
|
34
38
|
|
35
39
|
it { subject.must_be_instance_of(Hash) }
|
36
40
|
end
|
37
|
-
|
38
|
-
describe '#execute' do
|
39
|
-
subject { instance.execute }
|
40
|
-
|
41
|
-
it { skip }
|
42
|
-
end
|
43
|
-
|
44
|
-
describe '#list' do
|
45
|
-
subject { instance.list }
|
46
|
-
|
47
|
-
it { subject.must_be_instance_of(String) }
|
48
|
-
end
|
49
41
|
end
|
50
42
|
end
|
@@ -103,6 +103,12 @@ module Vedeu
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
+
describe '.clear_line' do
|
107
|
+
subject { described_class.clear_line }
|
108
|
+
|
109
|
+
it { skip }
|
110
|
+
end
|
111
|
+
|
106
112
|
describe '.show_cursor' do
|
107
113
|
before { console.stubs(:puts) }
|
108
114
|
|
@@ -131,6 +137,18 @@ module Vedeu
|
|
131
137
|
end
|
132
138
|
end
|
133
139
|
|
140
|
+
describe '#initialize' do
|
141
|
+
subject { described_class.new }
|
142
|
+
|
143
|
+
it { skip }
|
144
|
+
end
|
145
|
+
|
146
|
+
describe '#open' do
|
147
|
+
subject { described_class.new.open }
|
148
|
+
|
149
|
+
it { skip }
|
150
|
+
end
|
151
|
+
|
134
152
|
describe '#initial_setup!' do
|
135
153
|
subject { described_class.new.initial_setup! }
|
136
154
|
|
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.
|
4
|
+
version: 0.0.6
|
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-05-
|
11
|
+
date: 2014-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -170,7 +170,6 @@ files:
|
|
170
170
|
- lib/vedeu/process/command.rb
|
171
171
|
- lib/vedeu/process/commands.rb
|
172
172
|
- lib/vedeu/process/exit.rb
|
173
|
-
- lib/vedeu/process/process.rb
|
174
173
|
- lib/vedeu/support/terminal.rb
|
175
174
|
- lib/vedeu/version.rb
|
176
175
|
- test/lib/vedeu/application_test.rb
|
@@ -190,7 +189,6 @@ files:
|
|
190
189
|
- test/lib/vedeu/process/command_test.rb
|
191
190
|
- test/lib/vedeu/process/commands_test.rb
|
192
191
|
- test/lib/vedeu/process/exit_test.rb
|
193
|
-
- test/lib/vedeu/process/process_test.rb
|
194
192
|
- test/lib/vedeu/support/terminal_test.rb
|
195
193
|
- test/lib/vedeu/version_test.rb
|
196
194
|
- test/support/test_app/bin/testapp
|
@@ -238,7 +236,6 @@ test_files:
|
|
238
236
|
- test/lib/vedeu/process/command_test.rb
|
239
237
|
- test/lib/vedeu/process/commands_test.rb
|
240
238
|
- test/lib/vedeu/process/exit_test.rb
|
241
|
-
- test/lib/vedeu/process/process_test.rb
|
242
239
|
- test/lib/vedeu/support/terminal_test.rb
|
243
240
|
- test/lib/vedeu/version_test.rb
|
244
241
|
- test/support/test_app/bin/testapp
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module Vedeu
|
2
|
-
class Process
|
3
|
-
class << self
|
4
|
-
def main_sequence(interfaces = nil)
|
5
|
-
new(interfaces).main_sequence
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
def initialize(interfaces = nil)
|
10
|
-
@interfaces = interfaces
|
11
|
-
end
|
12
|
-
|
13
|
-
def main_sequence
|
14
|
-
initial_state
|
15
|
-
|
16
|
-
event_loop
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def event_loop
|
22
|
-
interfaces.event_loop
|
23
|
-
end
|
24
|
-
|
25
|
-
def initial_state
|
26
|
-
interfaces.initial_state
|
27
|
-
end
|
28
|
-
|
29
|
-
def interfaces
|
30
|
-
@interfaces ||= Interfaces.default
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|