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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 54f8f1bc504aeda5b8adb6a5e35f9e79f7bce90e
4
- data.tar.gz: ff95c2e46a6709e966ece79c6da8a13194c63d9d
3
+ metadata.gz: 204c1390aaf48986fa9c98eb701d465087dfc2da
4
+ data.tar.gz: 35d0eb86544dc888295ae9d1ecb57910e44b4683
5
5
  SHA512:
6
- metadata.gz: 92656c17807b835913650bff48e62d04a64b606223bec213cb56507971c1525dd0d785ce306532bef6d87bce334ea72b247e7ed7ee793c6de884ed9f3c0a97a4
7
- data.tar.gz: e272dd34a2047424c676ed567925eea8887b6c8b57b65715c6e05e1559283f397d5b80b9aa89d9d9372b78aa04170455581a72ef28979fea408621bafa572b3e
6
+ metadata.gz: f4df0985196ab46670b2af23b4454040ecfa1de741e024df099845a1f9539d45d56d8a11046d8a8a11942f7fe006352587cd2e27b1d331d85b9353bdb6b577c9
7
+ data.tar.gz: 81bd58be52f3ae5e3c93dfc3854673df7fae529299c15c5e6129f08e668c5d06b0f3c14aabcb3273efcb22ed268518d07e9f27a8b76cdf7bf209022a97834b61
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ 0.0.2
4
+ =====
5
+ * Fixed `relative_path` setting default to point to MM root.
6
+ * Added `display_info_after_build` setting.
7
+ * Added `build_info` helper.
8
+
3
9
  0.0.1
4
10
  =====
5
- * Initial release
11
+ * Initial release.
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 "middleman-build-info", :git => 'https://github.com/mcavallo/middleman-build-info.git'
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, 'source', 'Relative path to build file from MM root.'
8
- option :debug, true, ''
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["number"] = info["number"].to_i + 1
49
- info["date"] = Time.now.utc.to_s
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
 
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module BuildInfo
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
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.1
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-24 00:00:00.000000000 Z
11
+ date: 2014-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core