timelime 0.1.1 → 0.1.2
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 +20 -0
- data/bin/timelime +41 -6
- data/lib/timelime/axis.rb +18 -1
- data/lib/timelime/dump.rb +13 -8
- data/lib/timelime/parse.rb +3 -3
- data/lib/timelime/tags.rb +1 -1
- data/lib/timelime/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9c4553b5957aaaf6857cc57231d192b17f022c647cdc16e083cf447b563e078
|
4
|
+
data.tar.gz: 652fc40e0b06135bc8eca4920b92c0ca9a98228c333edcd01dfb8b7dd8f13fb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07a3249a867b8945833111f3d47525e352821f806019d2fa638da114e158babfbbc0c6722fff0ec6724f719ef8e049df1663d2c9ac6e8358d9e0a3dc09a28dd1
|
7
|
+
data.tar.gz: a3076a41a4fc1b0be4b795da40edf701bf2ea051aa6f8bb1e90922deaad5ad47611cd9f86608753940378bbcc6c3dfd89db3060c695d97596feca7241702babb
|
data/README.md
CHANGED
@@ -1,2 +1,22 @@
|
|
1
1
|
# timelime
|
2
2
|
a ruby timeliner
|
3
|
+
|
4
|
+
# installation
|
5
|
+
run as root \
|
6
|
+
`gem install timelime`
|
7
|
+
|
8
|
+
# usage
|
9
|
+
`timelime --help`
|
10
|
+
|
11
|
+
# file syntax
|
12
|
+
`.md`-friendly:
|
13
|
+
```md
|
14
|
+
# Some event
|
15
|
+
*X BCE - Y CE*
|
16
|
+
- comment
|
17
|
+
- comment
|
18
|
+
@tag1 @tag2
|
19
|
+
|
20
|
+
# Another event
|
21
|
+
...
|
22
|
+
```
|
data/bin/timelime
CHANGED
@@ -1,18 +1,52 @@
|
|
1
1
|
#! /usr/bin/ruby
|
2
2
|
|
3
3
|
begin
|
4
|
+
require 'optparse'
|
4
5
|
require 'timelime'
|
5
6
|
rescue
|
6
7
|
puts "lib require failed"
|
7
8
|
exit 1
|
8
9
|
end
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
11
|
+
$options = {}
|
12
|
+
ARGV.options do |opt|
|
13
|
+
|
14
|
+
opt.banner = "Usage: timelime options"
|
15
|
+
|
16
|
+
opt.on("-h", "--help", "print help") do
|
17
|
+
puts opt
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
|
21
|
+
opt.on("-f", "--file [PATH]", "include path recursively") do |path|
|
22
|
+
unless path.nil? or path.empty?
|
23
|
+
$options[:file] = $options[:file].to_a + [path]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
opt.on("-p", "--precision [NUM]", "timeline event precision") do |prec|
|
28
|
+
if prec.nil?
|
29
|
+
next
|
30
|
+
end
|
31
|
+
tmp = prec.to_i
|
32
|
+
if tmp.to_s == prec
|
33
|
+
$options[:precision] = tmp
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
=begin
|
38
|
+
opt.on("-T", "--tags-inc [TAG1,TA...]", "process only given tags") do |tags|
|
39
|
+
end
|
40
|
+
|
41
|
+
opt.on("-t", "--tags-exc [TAG1,TA...]", "process all but given tags") do |tags|
|
42
|
+
end
|
43
|
+
=end
|
44
|
+
|
45
|
+
opt.parse!
|
46
|
+
|
13
47
|
end
|
14
48
|
|
15
|
-
tree
|
49
|
+
tree = Timelime::Tree.new( $options[:file].to_a )
|
16
50
|
table = Timelime::Table.new
|
17
51
|
|
18
52
|
tree.get do |file|
|
@@ -21,12 +55,13 @@ tree.get do |file|
|
|
21
55
|
end
|
22
56
|
end
|
23
57
|
|
58
|
+
|
24
59
|
if table.size == 0
|
25
|
-
|
60
|
+
exit
|
26
61
|
end
|
27
62
|
|
28
63
|
axis = Timelime::Axis.new(table)
|
29
|
-
axis.generate
|
64
|
+
axis.generate $options[:precision]
|
30
65
|
|
31
66
|
puts
|
32
67
|
Timelime::dump axis
|
data/lib/timelime/axis.rb
CHANGED
@@ -14,7 +14,13 @@ module Timelime
|
|
14
14
|
@table = table
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def to_b
|
18
|
+
true
|
19
|
+
end
|
20
|
+
|
21
|
+
def generate precision = nil
|
22
|
+
|
23
|
+
precision = precision.to_i
|
18
24
|
|
19
25
|
@buffer = [
|
20
26
|
[], # L side
|
@@ -23,7 +29,18 @@ module Timelime
|
|
23
29
|
range = @table.range
|
24
30
|
@begin = range[0]
|
25
31
|
@length = range[1] - range[0]
|
32
|
+
if @length == 0
|
33
|
+
@length = 1
|
34
|
+
end
|
26
35
|
size = @table.size
|
36
|
+
|
37
|
+
if precision == 0
|
38
|
+
precision = Math.log(@length).to_i
|
39
|
+
if precision == 0
|
40
|
+
precision = 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
27
44
|
@lines = size * precision
|
28
45
|
|
29
46
|
@table.get do |e|
|
data/lib/timelime/dump.rb
CHANGED
@@ -6,6 +6,9 @@ module Timelime
|
|
6
6
|
|
7
7
|
for c in 0...data[0].size
|
8
8
|
for l in 0...data[0][c].size
|
9
|
+
if l - 1 < 0 or l + 1 >= data[0][c].size
|
10
|
+
next
|
11
|
+
end
|
9
12
|
e = data[0][c][l]
|
10
13
|
check = [e.to_s, "*"]
|
11
14
|
above = data[0][c][l - 1].to_s
|
@@ -21,12 +24,10 @@ module Timelime
|
|
21
24
|
data.map! do |s|
|
22
25
|
s.map! do |c|
|
23
26
|
c.map! do |e|
|
24
|
-
if e.
|
25
|
-
nil
|
26
|
-
elsif e.class == Timelime::Event
|
27
|
+
if e.class == Timelime::Event
|
27
28
|
e.head
|
28
29
|
else
|
29
|
-
|
30
|
+
e
|
30
31
|
end
|
31
32
|
end
|
32
33
|
end
|
@@ -59,16 +60,20 @@ module Timelime
|
|
59
60
|
|
60
61
|
for s in 0..1
|
61
62
|
|
63
|
+
if s == 1
|
64
|
+
buf[-1] += " │ " + tab(axis.label(l), 6, 0) + " │ "
|
65
|
+
end
|
66
|
+
|
67
|
+
if data[s][l].nil?
|
68
|
+
next
|
69
|
+
end
|
70
|
+
|
62
71
|
data[s][l].each_with_index do |txt, c|
|
63
72
|
|
64
73
|
buf[-1] += tab(txt, tabs[s][c], s)
|
65
74
|
|
66
75
|
end
|
67
76
|
|
68
|
-
if s == 0
|
69
|
-
buf[-1] += " │ " + tab(axis.label(l), 6, 0) + " │ "
|
70
|
-
end
|
71
|
-
|
72
77
|
end
|
73
78
|
|
74
79
|
end
|
data/lib/timelime/parse.rb
CHANGED
@@ -36,7 +36,7 @@ module Timelime
|
|
36
36
|
case line[0]
|
37
37
|
when "*"
|
38
38
|
buf.time.push(line)
|
39
|
-
when "
|
39
|
+
when "@"
|
40
40
|
buf.tags.push(line)
|
41
41
|
else
|
42
42
|
end
|
@@ -44,8 +44,8 @@ module Timelime
|
|
44
44
|
|
45
45
|
rescue
|
46
46
|
err = true
|
47
|
-
puts "WARN: invalid definition: #{path} line #{number}"
|
48
|
-
puts " skipping to next entry"
|
47
|
+
$stderr.puts "WARN: invalid definition: #{path} line #{number}"
|
48
|
+
$stderr.puts " skipping to next entry"
|
49
49
|
end
|
50
50
|
|
51
51
|
end
|
data/lib/timelime/tags.rb
CHANGED
data/lib/timelime/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timelime
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- patztablook22
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ''
|
14
14
|
email:
|