jekyll-frontadder 0.0.1 → 0.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20d14f8b5543dc8267b1d58766f20af69c8ed06c
4
- data.tar.gz: ee91c1bf47b23f935e8fc0758c81e22cd02f7230
3
+ metadata.gz: ff62bd252c1a60d98dcca8095edf14f0f38bbf60
4
+ data.tar.gz: 4d2c7f0db75d2b018c6c37bcd769a71c2ab9f72c
5
5
  SHA512:
6
- metadata.gz: 903ac21dfaa798fc790bfb3d1f1b81055591577d9e9023c9e7c6c09de0382aff83539bb327d065c1c3da0ce4fa93dcaa9f9222f335305ab760ca394c3d215e1e
7
- data.tar.gz: 3c8e29e80189ebfe43f9c33fd3f8aa6bce9e5b32c087f36c131d708a4d61e57644639b0cd242981b62167754b8ecd93d68663fdc45f2c34e5503f63871c1d08e
6
+ metadata.gz: cea23a390ed7076f1df8e791419b8b5db56175c60411fa803234dcb3663ab849605ff2c719b6adbae8d217bbdf01faf2f846a880ae4a8b7afc342312c985b3cc
7
+ data.tar.gz: 80f0883ca158e5c7be905861535a39971d7c722a4646e2eba54996fb4cca9be7b0555e9ef5fde8ea98a56f7b09bce6eb835d64862d62162524d61738456561e9
@@ -1,33 +1,43 @@
1
- # This plugin adds up build hours from each build log entry and pushes a
2
- # running total on each post
3
- #
4
- # V1 only handles hour summary
5
- #
6
- # TODO: Extend to process multiple types of efforts
7
- module JekyllFrontAdder
1
+ # This Jekyll Generator plugin looks for specified hashes in a post's front matter and adds them up.
2
+ # The final result is stored into the site's data tree for use in layouts
3
+ module Jekyll
8
4
  # Here's our work horse class
9
5
  class JekyllFrontAdderGen < Jekyll::Generator
10
- def initialize(*)
11
- @hours = { 'total' => 0 }
12
- @parts = { 'total' => 0 }
13
- @types = { 'total' => 0 }
14
- @hours.default = 0
15
- @parts.default = 0
16
- @types.default = 0
17
- end
18
-
6
+ # Called by Jekyll to run our plugin
19
7
  def generate(site)
8
+ # Pickup array of frontmatter things to add up
9
+ frontadd = site.config["frontadder"]
10
+ if frontadd.nil?
11
+ Jekyll.logger.warn 'Frontadder: frontadder not defined in _config.yml, skipping'
12
+ return
13
+ end
14
+ Jekyll.logger.debug 'Frontadder: Will add listed hashes: ', frontadd
15
+
16
+ # Initialize hashes for each hash to add
17
+ frontadd.each do |addme|
18
+ site.data[addme] ||= {}
19
+ end
20
+
21
+ # For each post, loop through the list of hashes to add and do it.
20
22
  site.posts.docs.each do |post|
21
- next if post.data['layout'] != 'buildlog'
22
23
  Jekyll.logger.debug 'Processing: ', post.url
23
- posthours = post.data['hours']
24
- @hours['total'] = @hours['total'] + posthours['total']
25
- post.data['tothours'] = { 'total' => @hours['total'], 'part' => @parts, 'type' => @types }
24
+ frontadd.each do |addme|
25
+ next unless post.data[addme].respond_to?(:merge)
26
+ site.data[addme] = addhashes(site.data[addme], post.data[addme])
27
+ post.data[addme]['runtotal'] = site.data[addme]
28
+ end
26
29
  end
27
30
  end
28
31
 
29
- # This will add two hases together and return the result
32
+ private
33
+
34
+ # This will add two hases together and return the result - recursive
30
35
  def addhashes(h1, h2)
36
+ if h1.respond_to?(:merge) && h2.respond_to?(:merge)
37
+ return h1.merge(h2) { |_key, old, new| addhashes(old, new) }
38
+ else
39
+ return h1 + h2
40
+ end
31
41
  end
32
42
  end
33
43
  end
@@ -1,3 +1,3 @@
1
1
  module JekyllFrontAdder
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-frontadder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nitehawk
@@ -11,33 +11,81 @@ cert_chain: []
11
11
  date: 2016-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rubocop
14
+ name: jekyll
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 3.1.6
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.0
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - '>='
25
28
  - !ruby/object:Gem::Version
26
- version: '0'
29
+ version: 3.1.6
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: 3.2.0
27
33
  - !ruby/object:Gem::Dependency
28
- name: jekyll
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: '1.6'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '1.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '10'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '10'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rubocop
29
77
  requirement: !ruby/object:Gem::Requirement
30
78
  requirements:
31
79
  - - '>='
32
80
  - !ruby/object:Gem::Version
33
- version: 3.1.6
34
- type: :runtime
81
+ version: '0'
82
+ type: :development
35
83
  prerelease: false
36
84
  version_requirements: !ruby/object:Gem::Requirement
37
85
  requirements:
38
86
  - - '>='
39
87
  - !ruby/object:Gem::Version
40
- version: 3.1.6
88
+ version: '0'
41
89
  description: Jekyll generator to sum frontmatter elements
42
90
  email:
43
91
  - nite97m@gmail.com