timelinegen 0.0.4 → 0.0.5
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.
- data/lib/timelinegen.rb +56 -18
- metadata +3 -2
data/lib/timelinegen.rb
CHANGED
@@ -2,18 +2,29 @@ require 'json'
|
|
2
2
|
|
3
3
|
class TimelineGen
|
4
4
|
|
5
|
+
def initialize(input, headlinefield, textfield, startdatefield, enddatefield, timelinetitle)
|
6
|
+
@input = input
|
7
|
+
@textfield = textfield
|
8
|
+
@headlinefield = headlinefield
|
9
|
+
@startdatefield = startdatefield
|
10
|
+
@enddatefiled = enddatefield
|
11
|
+
@timelinetitle = timelinetitle
|
12
|
+
end
|
13
|
+
|
5
14
|
# Change date format to work with TimelineJS
|
6
|
-
def
|
15
|
+
def parseDate(date)
|
7
16
|
if date != nil
|
8
17
|
date.gsub!("-",",")
|
9
18
|
date.gsub!(" ",",")
|
19
|
+
date.gsub!("T", ",")
|
20
|
+
date.gsub!("Z", "")
|
10
21
|
date.gsub!(":",",")
|
11
22
|
end
|
12
23
|
date
|
13
24
|
end
|
14
25
|
|
15
26
|
# Generate JSON for event
|
16
|
-
def
|
27
|
+
def genEvent(startDate, endDate, headline, text)
|
17
28
|
JSON.pretty_generate(
|
18
29
|
"startDate" => parseDate(startDate),
|
19
30
|
"endDate" => parseDate(endDate),
|
@@ -22,32 +33,60 @@ class TimelineGen
|
|
22
33
|
)
|
23
34
|
end
|
24
35
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
pe = JSON.parse(File.read(file))
|
36
|
+
# Parses events for timeline
|
37
|
+
def parseEvents
|
38
|
+
pe = JSON.parse(@input)
|
29
39
|
k = pe.length
|
30
40
|
event = Array.new
|
31
41
|
(0..k-2).each do |i|
|
32
|
-
|
42
|
+
event[i] = JSON.parse(
|
33
43
|
genEvent(
|
34
|
-
(pe
|
35
|
-
|
36
|
-
(pe
|
37
|
-
(pe
|
44
|
+
checkSplit(@startdatefield, i, pe),
|
45
|
+
checkSplit(@enddatefield, i, pe),
|
46
|
+
checkSplit(@headlinefield, i, pe),
|
47
|
+
checkSplit(@textfield, i, pe)
|
38
48
|
)
|
39
49
|
)
|
40
50
|
end
|
41
51
|
return event
|
42
52
|
end
|
53
|
+
|
54
|
+
# Check to see if events should be split on comma
|
55
|
+
def checkSplit(field, num, pe)
|
56
|
+
if field != nil && field.include?(",")
|
57
|
+
return split(field, num, pe)
|
58
|
+
else
|
59
|
+
return (pe[num+1])[field]
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Splits fields on comma and returns values
|
64
|
+
def split(field, num, pe)
|
65
|
+
fieldarray = field.split( /, */ )
|
66
|
+
resultstring = ""
|
67
|
+
|
68
|
+
fieldarray.each do |f|
|
69
|
+
resultstring = resultstring + f + ": " + checkNil(f, num, pe) + "\n"
|
70
|
+
end
|
71
|
+
|
72
|
+
return resultstring
|
73
|
+
end
|
74
|
+
|
75
|
+
# Check to see if value exists
|
76
|
+
def checkNil(f, num, pe)
|
77
|
+
if (pe[num+1])[f]
|
78
|
+
return (pe[num+1])[f].to_s
|
79
|
+
else return ""
|
80
|
+
end
|
81
|
+
end
|
43
82
|
|
44
83
|
#Gets the headline
|
45
|
-
def
|
46
|
-
headline =
|
84
|
+
def parseHeadline
|
85
|
+
headline = @timelinetitle
|
47
86
|
end
|
48
87
|
|
49
88
|
# Generates full timeline JSON
|
50
|
-
def
|
89
|
+
def genTimeline(event, headline)
|
51
90
|
JSON.pretty_generate(
|
52
91
|
"timeline" => {
|
53
92
|
"headline" => headline,
|
@@ -58,10 +97,9 @@ class TimelineGen
|
|
58
97
|
)
|
59
98
|
end
|
60
99
|
|
61
|
-
def
|
62
|
-
event = parseEvents
|
63
|
-
headline = parseHeadline
|
100
|
+
def timeline
|
101
|
+
event = parseEvents
|
102
|
+
headline = parseHeadline
|
64
103
|
genTimeline(event, headline)
|
65
104
|
end
|
66
105
|
end
|
67
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timelinegen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
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: 2013-
|
12
|
+
date: 2013-12-17 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: TimelineGen generates JSON files for use as TimelineJS data.
|
15
15
|
email: shidash@shidash.com
|
@@ -43,3 +43,4 @@ signing_key:
|
|
43
43
|
specification_version: 3
|
44
44
|
summary: TimelineJS JSON Generator
|
45
45
|
test_files: []
|
46
|
+
has_rdoc:
|