middleman-build-info 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/middleman-build-info.png)](http://badge.fury.io/rb/middleman-build-info) [![Code Climate](https://codeclimate.com/github/mcavallo/middleman-build-info.png)](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
|