middleman-build-info 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 +4 -4
- data/CHANGELOG.md +7 -1
- data/README.md +3 -1
- data/lib/middleman-build-info/extension.rb +10 -3
- data/lib/middleman-build-info/monkey.rb +17 -0
- data/lib/middleman-build-info/updater.rb +8 -5
- data/lib/middleman-build-info/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 204c1390aaf48986fa9c98eb701d465087dfc2da
|
4
|
+
data.tar.gz: 35d0eb86544dc888295ae9d1ecb57910e44b4683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4df0985196ab46670b2af23b4454040ecfa1de741e024df099845a1f9539d45d56d8a11046d8a8a11942f7fe006352587cd2e27b1d331d85b9353bdb6b577c9
|
7
|
+
data.tar.gz: 81bd58be52f3ae5e3c93dfc3854673df7fae529299c15c5e6129f08e668c5d06b0f3c14aabcb3273efcb22ed268518d07e9f27a8b76cdf7bf209022a97834b61
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -6,6 +6,8 @@ Once the extension is activated It will run and update the build file every time
|
|
6
6
|
|
7
7
|
![IMAGE]
|
8
8
|
|
9
|
+
[](http://badge.fury.io/rb/middleman-build-info) [](https://codeclimate.com/github/mcavallo/middleman-build-info)
|
10
|
+
|
9
11
|
## Dependencies
|
10
12
|
|
11
13
|
* middleman-core (3.3+)
|
@@ -14,7 +16,7 @@ Once the extension is activated It will run and update the build file every time
|
|
14
16
|
Add to your `Gemfile` and then run `bundle install`:
|
15
17
|
|
16
18
|
```ruby
|
17
|
-
gem
|
19
|
+
gem 'middleman-build-info'
|
18
20
|
```
|
19
21
|
|
20
22
|
Then activate the extension in your `config.rb` file:
|
@@ -4,8 +4,8 @@ module Middleman
|
|
4
4
|
class BuildInfoExtension < Extension
|
5
5
|
|
6
6
|
option :filename, 'build.json', 'Build filename.'
|
7
|
-
option :relative_path, '
|
8
|
-
option :
|
7
|
+
option :relative_path, '', 'Relative path to build file from MM root.'
|
8
|
+
option :display_info_after_build, true, 'Print build info after a successful build.'
|
9
9
|
|
10
10
|
def initialize(app, options_hash={}, &block)
|
11
11
|
super
|
@@ -16,12 +16,19 @@ module Middleman
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def before_build(builder)
|
19
|
-
@updater.update_build_info(builder)
|
19
|
+
@updater.update_build_info(builder)
|
20
20
|
end
|
21
21
|
|
22
22
|
def after_build
|
23
23
|
@updater.wrap_up
|
24
24
|
end
|
25
25
|
|
26
|
+
helpers do
|
27
|
+
def build_info(key=nil)
|
28
|
+
return config[:build_info] if key.nil?
|
29
|
+
config[:build_info][key.to_sym] || nil
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
26
33
|
end
|
27
34
|
end
|
@@ -2,4 +2,21 @@ class String
|
|
2
2
|
def without_leading_slash
|
3
3
|
self.gsub(/^\//,'')
|
4
4
|
end
|
5
|
+
end
|
6
|
+
|
7
|
+
class Hash
|
8
|
+
def symbolize_keys
|
9
|
+
self.inject({}) do |result, (key, value)|
|
10
|
+
new_key = case key
|
11
|
+
when String then key.to_sym
|
12
|
+
else key
|
13
|
+
end
|
14
|
+
new_value = case value
|
15
|
+
when Hash then symbolize_keys(value)
|
16
|
+
else value
|
17
|
+
end
|
18
|
+
result[new_key] = new_value
|
19
|
+
result
|
20
|
+
end
|
21
|
+
end
|
5
22
|
end
|
@@ -10,11 +10,13 @@ module Middleman
|
|
10
10
|
@options = options
|
11
11
|
@file = File.join(@app.root_path, @options[:relative_path], @options[:filename])
|
12
12
|
@file_relative = File.join(@options[:relative_path], @options[:filename]).without_leading_slash
|
13
|
+
|
14
|
+
@backup = read_info_file
|
15
|
+
app.set :build_info, @backup
|
13
16
|
end
|
14
17
|
|
15
18
|
def update_build_info(builder)
|
16
19
|
@builder = builder
|
17
|
-
@backup = read_info_file
|
18
20
|
@new_info = get_updated_info(@backup)
|
19
21
|
write_info_file(@new_info) do
|
20
22
|
@builder.say_status('update', @file_relative, :yellow)
|
@@ -39,14 +41,14 @@ module Middleman
|
|
39
41
|
end
|
40
42
|
|
41
43
|
def read_info_file
|
42
|
-
JSON.parse(File.read(@file))
|
44
|
+
JSON.parse(File.read(@file)).symbolize_keys
|
43
45
|
rescue Errno::ENOENT, JSON::ParserError
|
44
46
|
default_template
|
45
47
|
end
|
46
48
|
|
47
49
|
def get_updated_info(info)
|
48
|
-
info[
|
49
|
-
info[
|
50
|
+
info[:number] = info[:number].to_i + 1
|
51
|
+
info[:date] = Time.now.utc.to_s
|
50
52
|
info
|
51
53
|
end
|
52
54
|
|
@@ -55,9 +57,10 @@ module Middleman
|
|
55
57
|
end
|
56
58
|
|
57
59
|
def print_build_info(info)
|
60
|
+
return unless @options[:display_info_after_build]
|
58
61
|
@builder.say("\n Build Info:")
|
59
62
|
info.each_pair do |name, value|
|
60
|
-
@builder.say_status(name, value, :green)
|
63
|
+
@builder.say_status(name.to_s, value, :green)
|
61
64
|
end
|
62
65
|
end
|
63
66
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-build-info
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mariano Cavallo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman-core
|