termnote 1.0.0 → 1.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.
@@ -21,6 +21,9 @@ items:
21
21
  - Pencil
22
22
  - Heart
23
23
  ---
24
+ type: console
25
+ binary: irb
26
+ ---
24
27
  type: code
25
28
  language: ruby
26
29
  source: |
data/lib/termnote.rb CHANGED
@@ -27,5 +27,9 @@ module TermNote
27
27
  def list(options)
28
28
  Pane::List.new options
29
29
  end
30
+
31
+ def console(options)
32
+ Pane::Console.new options
33
+ end
30
34
  end
31
35
 
@@ -13,12 +13,7 @@ module TermNote
13
13
  def to_panes
14
14
  @documents.map do |document|
15
15
  type = document['type']
16
- case type
17
- when "chapter" then Pane::Chapter.new document
18
- when "code" then Pane::Code.new document
19
- when "list" then Pane::List.new document
20
- when "text" then Pane::Text.new document
21
- end
16
+ send(type, document)
22
17
  end
23
18
  end
24
19
  end
data/lib/termnote/pane.rb CHANGED
@@ -2,14 +2,16 @@ require_relative 'pane/chapter'
2
2
  require_relative 'pane/code'
3
3
  require_relative 'pane/list'
4
4
  require_relative 'pane/text'
5
+ require_relative 'pane/console'
6
+
5
7
  module TermNote
6
8
  module Pane
7
9
  attr_accessor :show, :height, :width, :rows
8
10
 
9
11
  def call(window_size)
10
12
  window_height, window_width = window_size
11
- @width = window_width - (window_width * 0.2)
12
- @height = window_height / 2
13
+ @width = window_width
14
+ @height = window_height
13
15
  clear
14
16
  render
15
17
  end
@@ -21,23 +23,19 @@ module TermNote
21
23
  end
22
24
 
23
25
  def render
24
- puts space + formated_rows + space + footer
25
- end
26
-
27
- def gutter
28
- " " * (width * 0.1)
26
+ puts show.header + space + formated_rows + space
29
27
  end
30
28
 
31
29
  def space
32
- "\n" * (height - rows.size)
33
- end
34
-
35
- def footer
36
- "[#{show.panes.index(self) + 1}/#{show.panes.size}]".bold
30
+ "\n" * (height / 2)
37
31
  end
38
32
 
39
33
  def formated_rows
40
34
  rows.map { |row| gutter + row }.join("\n")
41
35
  end
36
+
37
+ def gutter
38
+ " " * (width / 10)
39
+ end
42
40
  end
43
41
  end
@@ -0,0 +1,20 @@
1
+ module TermNote
2
+ module Pane
3
+ class Console
4
+ include Pane
5
+
6
+ attr_accessor :binary
7
+
8
+ def initialize(options)
9
+ @binary = options[:binary] || options['binary']
10
+ end
11
+
12
+ private
13
+
14
+ def render
15
+ system binary
16
+ show.forward
17
+ end
18
+ end
19
+ end
20
+ end
data/lib/termnote/show.rb CHANGED
@@ -7,6 +7,7 @@ module TermNote
7
7
  end
8
8
 
9
9
  def add(pane)
10
+ raise ArgumentError, "Pane required" if pane.nil?
10
11
  panes << pane
11
12
  pane.show = self
12
13
  end
@@ -19,6 +20,10 @@ module TermNote
19
20
  panes.index pane
20
21
  end
21
22
 
23
+ def total
24
+ panes.size
25
+ end
26
+
22
27
  def start
23
28
  active = true
24
29
  while active
@@ -39,6 +44,12 @@ module TermNote
39
44
  @pane = panes[position - 1] || panes.last
40
45
  end
41
46
 
47
+ def header
48
+ "[#{position}/#{total}] - #{panes.first.title}\n".bold
49
+ end
50
+
51
+ private
52
+
42
53
  def command
43
54
  $stdin.getch
44
55
  end
@@ -1,3 +1,3 @@
1
1
  module TermNote
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: termnote
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-13 00:00:00.000000000 Z
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colored
@@ -101,6 +101,7 @@ files:
101
101
  - lib/termnote/pane.rb
102
102
  - lib/termnote/pane/chapter.rb
103
103
  - lib/termnote/pane/code.rb
104
+ - lib/termnote/pane/console.rb
104
105
  - lib/termnote/pane/list.rb
105
106
  - lib/termnote/pane/text.rb
106
107
  - lib/termnote/show.rb
@@ -120,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
121
  version: '0'
121
122
  segments:
122
123
  - 0
123
- hash: 1621899467072845328
124
+ hash: 197848977520802502
124
125
  required_rubygems_version: !ruby/object:Gem::Requirement
125
126
  none: false
126
127
  requirements:
@@ -129,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
130
  version: '0'
130
131
  segments:
131
132
  - 0
132
- hash: 1621899467072845328
133
+ hash: 197848977520802502
133
134
  requirements: []
134
135
  rubyforge_project:
135
136
  rubygems_version: 1.8.24