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.
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: