timelime 0.1.1 → 0.1.2

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
  SHA256:
3
- metadata.gz: 87163ebf7ebd03945a2e8da4e22fcae1d56044b4a639b60c1862846824cb65c0
4
- data.tar.gz: 4a8001e069cce6faed6bdac488e98a504bcfde14d282bef08e20ee24b6353bd1
3
+ metadata.gz: a9c4553b5957aaaf6857cc57231d192b17f022c647cdc16e083cf447b563e078
4
+ data.tar.gz: 652fc40e0b06135bc8eca4920b92c0ca9a98228c333edcd01dfb8b7dd8f13fb0
5
5
  SHA512:
6
- metadata.gz: c45a00b5ccfd02c89b8993e42099dec6cbb43789eb427221ee0428f87821634ef34d9d0b8af63805f0d64f71183b776e3405e2bd3d12e5393bcb4c4998fe8a74
7
- data.tar.gz: e2474eef94d5d6d0b288d6464b21f85d2f0a80b2489badb3ea0c23db5e1aa9a97842bcde87471df822c77f3ebc6ff4ca927c1e964be0d05b8495f6a5ed6babb2
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
+ ```
@@ -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
- paths = ARGV
11
- if paths.size == 0
12
- paths += ["."]
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 = Timelime::Tree.new(paths)
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
- puts "table is empty"
60
+ exit
26
61
  end
27
62
 
28
63
  axis = Timelime::Axis.new(table)
29
- axis.generate 3
64
+ axis.generate $options[:precision]
30
65
 
31
66
  puts
32
67
  Timelime::dump axis
@@ -14,7 +14,13 @@ module Timelime
14
14
  @table = table
15
15
  end
16
16
 
17
- def generate precision = 10
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|
@@ -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.nil?
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
@@ -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
@@ -12,7 +12,7 @@ module Timelime
12
12
 
13
13
  raw.split.each do |tag|
14
14
 
15
- unless tag[0] == "#" and tag.length > 1
15
+ unless tag[0] == "@" and tag.length > 1
16
16
  throw :syntax
17
17
  end
18
18
 
@@ -1,3 +1,3 @@
1
1
  module Timelime
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
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.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-16 00:00:00.000000000 Z
11
+ date: 2020-07-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
14
  email: