nutils 0.6.4 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -13,5 +13,8 @@ A set of utilities for Nanoc3.
13
13
  ## Data Sources
14
14
  * **filesystem_customizable** Allows an array for source directories and for layout directories.
15
15
 
16
+ ## Helpers
17
+ * **load_rules** Allows to use multiple files with Nanoc rules.
18
+
16
19
  ## Contact
17
20
  You can reach me at <arnau.siches@gmail.com>.
@@ -0,0 +1,16 @@
1
+ module Nutils
2
+ module Errors
3
+
4
+ # Error that is raised when no partial rules file can be found in any
5
+ # directory provided.
6
+ class NoRulesFileFound < ::Nanoc3::Errors::NoRulesFileFound
7
+
8
+ # @param [String] filename The file name not found.
9
+ def initialize(filename)
10
+ super("No file found in any directory provided for “#{filename}”".make_compatible_with_env)
11
+ end
12
+
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ module Nutils
2
+
3
+ autoload "Errors", "nutils/base/errors"
4
+
5
+ end
@@ -8,7 +8,7 @@ module Nutils
8
8
  # The +filesystem_customizable+ data source allows an array for source
9
9
  # directories and for layout directories.
10
10
  #
11
- # @example config.yaml excerpt
11
+ # @example Config.yaml excerpt
12
12
  # data_sources:
13
13
  # -
14
14
  # type: filesystem_customizable
@@ -0,0 +1,48 @@
1
+ module Nutils
2
+ module Helpers
3
+
4
+ # @author Arnau Siches
5
+ #
6
+ # @version 0.1.0
7
+ #
8
+ # Provides some helper functions to process Rules.
9
+ module Rules
10
+
11
+ # Compiles the content as a set of Nanoc rules. Tries to use the
12
+ # +rules_dir+ attribute from the Config.yaml.
13
+ # If +rules_dir+ is not defined, it uses +"."+ as a base path.
14
+ #
15
+ # @example Config.yaml excerpt
16
+ #
17
+ # rules_dir: ['lib/rules/**', 'lib/other_rules']
18
+ #
19
+ # @example Rules excerpt
20
+ #
21
+ # # Finds any foo.rule in all directories defined in the Config.yaml
22
+ # load_rules('foo.rule')
23
+ #
24
+ # @param [String] filepath The file path to load.
25
+ #
26
+ # @return [Proc]
27
+ def load_rules(filepath)
28
+ rules_dir = @site.config[:rules_dir] || ['.']
29
+
30
+ path = rules_dir.map do |dir|
31
+ Dir[File.join(dir, filepath)].each { |filename| filename }
32
+ end.flatten
33
+
34
+ if path.length > 1
35
+ puts "\e[1mwarning\e[0m Multiple matches for #{filepath}:",
36
+ " #{path.join("\n ")}",
37
+ " \e[1mused\e[0m #{path[0]}"
38
+ elsif path.length == 0
39
+ raise Nutils::Errors::NoRulesFileFound.new(filepath)
40
+ end
41
+
42
+ instance_eval(File.read(path[0]), path[0])
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+ end
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ module Nutils
3
+ module Helpers
4
+ autoload "Rules", "nutils/helpers/rules"
5
+ end
6
+ end
data/lib/nutils.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  module Nutils
4
4
 
5
5
  # The current nutils version.
6
- VERSION = "0.6.4"
6
+ VERSION = "0.7.0"
7
7
 
8
8
  end
9
9
 
@@ -11,5 +11,7 @@ end
11
11
  require "nanoc3"
12
12
 
13
13
  # Load nutils
14
+ require "nutils/base"
14
15
  require "nutils/data_sources"
15
16
  require "nutils/filters"
17
+ require "nutils/helpers"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nutils
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 6
9
- - 4
10
- version: 0.6.4
8
+ - 7
9
+ - 0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Arnau Siches
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-12 00:00:00 -05:00
18
+ date: 2011-02-13 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -44,6 +44,8 @@ extra_rdoc_files:
44
44
  - README.md
45
45
  - LICENSE
46
46
  files:
47
+ - lib/nutils/base/errors.rb
48
+ - lib/nutils/base.rb
47
49
  - lib/nutils/data_sources/filesystem_customizable.rb
48
50
  - lib/nutils/data_sources.rb
49
51
  - lib/nutils/filters/beautify.rb
@@ -53,6 +55,8 @@ files:
53
55
  - lib/nutils/filters/svg2png.rb
54
56
  - lib/nutils/filters/yuicompressor.rb
55
57
  - lib/nutils/filters.rb
58
+ - lib/nutils/helpers/rules.rb
59
+ - lib/nutils/helpers.rb
56
60
  - lib/nutils.rb
57
61
  - README.md
58
62
  - LICENSE