timelinegen 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/timelinegen.rb +56 -18
  2. 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 self.parseDate(date)
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 self.genEvent(startDate, endDate, headline, text)
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
- # Generates all event JSONs
27
- def self.parseEvents(file)
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
- event[i] = JSON.parse(
42
+ event[i] = JSON.parse(
33
43
  genEvent(
34
- (pe[i+1])["date"],
35
- nil,
36
- (pe[i+1])["subject"],
37
- (pe[i+1])["body"]
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 self.parseHeadline(file)
46
- headline = (JSON.parse(File.read(file))[0])["emailheadline"]
84
+ def parseHeadline
85
+ headline = @timelinetitle
47
86
  end
48
87
 
49
88
  # Generates full timeline JSON
50
- def self.genTimeline(event, headline)
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 self.emailTimeline(file)
62
- event = parseEvents(file)
63
- headline = parseHeadline(file)
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
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-05-29 00:00:00.000000000 Z
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: