nanoc 3.5.0b1 → 3.5.0b2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nanoc (3.5.0)
4
+ nanoc (3.5.0b1)
5
5
  cri (~> 2.2)
6
6
 
7
7
  GEM
@@ -25,7 +25,7 @@ GEM
25
25
  excon (0.16.10)
26
26
  execjs (1.4.0)
27
27
  multi_json (~> 1.0)
28
- fog (1.8.0)
28
+ fog (1.9.0)
29
29
  builder
30
30
  excon (~> 0.14)
31
31
  formatador (~> 0.2.0)
@@ -37,53 +37,55 @@ GEM
37
37
  ruby-hmac
38
38
  formatador (0.2.4)
39
39
  haml (3.1.7)
40
- handlebars (0.3.1)
40
+ handlebars (0.3.2)
41
41
  commonjs (~> 0.2.3)
42
- therubyracer (~> 0.10.0)
43
- json (1.7.5)
44
- kramdown (0.14.1)
42
+ therubyracer (~> 0.11.1)
43
+ json (1.7.6)
44
+ kramdown (0.14.2)
45
45
  less (2.2.2)
46
46
  commonjs (~> 0.2.6)
47
- libv8 (3.3.10.4)
48
- listen (0.6.0)
47
+ libv8 (3.11.8.13)
48
+ listen (0.7.2)
49
49
  markaby (0.7.2)
50
50
  builder (>= 2.0.0)
51
51
  maruku (0.6.1)
52
52
  syntax (>= 1.0.0)
53
53
  metaclass (0.0.1)
54
54
  mime-types (1.19)
55
- minitest (4.3.3)
56
- mocha (0.13.1)
55
+ minitest (4.5.0)
56
+ mocha (0.13.2)
57
57
  metaclass (~> 0.0.1)
58
58
  multi_json (1.5.0)
59
59
  mustache (0.99.4)
60
60
  net-scp (1.0.4)
61
61
  net-ssh (>= 1.99.1)
62
- net-ssh (2.6.2)
62
+ net-ssh (2.6.3)
63
63
  nokogiri (1.5.6)
64
64
  pandoc-ruby (0.6.0)
65
65
  posix-spawn (0.3.6)
66
- pygments.rb (0.3.3)
66
+ pygments.rb (0.3.7)
67
67
  posix-spawn (~> 0.3.6)
68
68
  yajl-ruby (~> 1.1.0)
69
- rack (1.4.1)
69
+ rack (1.5.0)
70
70
  rainpress (1.0)
71
71
  rake (10.0.3)
72
72
  rdiscount (1.6.8)
73
73
  rdoc (3.12)
74
74
  json (~> 1.4)
75
75
  redcarpet (2.2.2)
76
+ ref (1.0.2)
76
77
  ruby-hmac (0.4.0)
77
78
  rubypants (0.2.0)
78
- sass (3.2.4)
79
- slim (1.3.5)
79
+ sass (3.2.5)
80
+ slim (1.3.6)
80
81
  temple (~> 0.5.5)
81
82
  tilt (~> 1.3.3)
82
83
  syntax (1.0.0)
83
84
  systemu (2.5.2)
84
85
  temple (0.5.5)
85
- therubyracer (0.10.2)
86
- libv8 (~> 3.3.10)
86
+ therubyracer (0.11.3)
87
+ libv8 (~> 3.11.8.12)
88
+ ref
87
89
  tilt (1.3.3)
88
90
  typogruby (1.0.15)
89
91
  rubypants
data/NEWS.md CHANGED
@@ -10,10 +10,11 @@ Minor changes:
10
10
 
11
11
  * Added `#include_rules` for modularising Rules files [Justin Hileman]
12
12
  * Replaced FSSM with Listen [Takashi Uchibe]
13
- * Made USR1 print stack trace
13
+ * Made USR1 print stack trace (not on Windows)
14
14
  * Added ability to configure autocompiler host/port in config.yaml [Stuart Montgomery]
15
15
  * Added static data source
16
16
  * Added `:rep_select` parameter to XML sitemap to allow filtering reps
17
+ * Removed use of bright/bold colors for compatibility with Solarized
17
18
 
18
19
  Exensions:
19
20
 
@@ -26,6 +27,7 @@ Fixes:
26
27
 
27
28
  * Made syntax colorizer only use the first non-empty line when extracting the
28
29
  language comment
30
+ * Fixed XSL filter
29
31
 
30
32
  ## 3.4.3 (2012-12-09)
31
33
 
@@ -3,7 +3,7 @@
3
3
  module Nanoc
4
4
 
5
5
  # The current nanoc version.
6
- VERSION = '3.5.0b1'
6
+ VERSION = '3.5.0b2'
7
7
 
8
8
  # @return [String] A string containing information about this nanoc version
9
9
  # and its environment (Ruby engine and version, Rubygems version if any).
@@ -132,8 +132,7 @@ module Nanoc
132
132
  # @param [Class] superclass The superclass of the plugin. For example:
133
133
  # {Nanoc::Filter}, {Nanoc::Extra::VCS}.
134
134
  #
135
- # @param [Class, String] class_or_name The class to get the identifiers for.
136
- # This can also be a string containing the name of the class.
135
+ # @param [Class] klass The class to get the identifiers for.
137
136
  #
138
137
  # @return [Array<Symbol>] An array of identifiers for the given class
139
138
  def identifiers_of(superclass, klass)
@@ -24,7 +24,6 @@ module Nanoc::CLI::Commands
24
24
  elsif options[:all]
25
25
  runner.run_all
26
26
  elsif options[:deploy]
27
- runner.require_dsl
28
27
  runner.run_for_deploy
29
28
  else
30
29
  runner.run_specific(arguments)
@@ -60,13 +60,16 @@ module Nanoc::CLI::Commands
60
60
 
61
61
  # Check
62
62
  unless options[:'no-check']
63
- puts "Running issue checks…"
64
- ok = Nanoc::Extra::Checking::Runner.new(site).run_for_deploy
65
- if !ok
66
- puts "Issues found, deploy aborted."
67
- return
63
+ runner = Nanoc::Extra::Checking::Runner.new(site)
64
+ if runner.has_dsl?
65
+ puts "Running issue checks…"
66
+ ok = runner.run_for_deploy
67
+ if !ok
68
+ puts "Issues found, deploy aborted."
69
+ return
70
+ end
71
+ puts "No issues found. Deploying!"
68
72
  end
69
- puts "No issues found. Deploying!"
70
73
  end
71
74
 
72
75
  # Run
@@ -58,9 +58,12 @@ module Nanoc::CLI
58
58
  exit!(0)
59
59
  end
60
60
  end
61
- Signal.trap('USR1') do
62
- puts "Caught USR1; dumping a stack trace"
63
- puts caller.map { |i| " #{i}" }.join("\n")
61
+ begin
62
+ Signal.trap('USR1') do
63
+ puts "Caught USR1; dumping a stack trace"
64
+ puts caller.map { |i| " #{i}" }.join("\n")
65
+ end
66
+ rescue ArgumentError
64
67
  end
65
68
 
66
69
  # Run
@@ -11,11 +11,11 @@ module Nanoc::CLI
11
11
  # Maps actions (`:create`, `:update`, `:identical`, `:skip` and `:delete`)
12
12
  # onto their ANSI color codes.
13
13
  ACTION_COLORS = {
14
- :create => "\e[1m" + "\e[32m", # bold + green
15
- :update => "\e[1m" + "\e[33m", # bold + yellow
16
- :identical => "\e[1m", # bold
17
- :skip => "\e[1m", # bold
18
- :delete => "\e[1m" + "\e[31m" # bold + red
14
+ :create => "\e[32m", # green
15
+ :update => "\e[33m", # yellow
16
+ :identical => "", # (nothing)
17
+ :skip => "", # (nothing)
18
+ :delete => "\e[31m" # red
19
19
  }
20
20
 
21
21
  include Singleton
@@ -34,6 +34,10 @@ module Nanoc::Extra::Checking::Checks
34
34
  path = href.sub(/#.*$/, '')
35
35
  return true if path.empty?
36
36
 
37
+ # Remove query string
38
+ path = path.sub(/\?.*$/, '')
39
+ return true if path.empty?
40
+
37
41
  # Make absolute
38
42
  if path[0, 1] == '/'
39
43
  path = @site.config[:output_dir] + path
@@ -7,24 +7,24 @@ module Nanoc::Extra::Checking
7
7
  # @api private
8
8
  class Runner
9
9
 
10
+ CHECKS_FILENAME = 'Checks'
11
+
10
12
  # @param [Nanoc::Site] site The nanoc site this runner is for
11
13
  def initialize(site)
12
14
  @site = site
13
15
  end
14
16
 
15
- # Ensures that there is a deployer DSL present.
16
- #
17
- # @return [void]
18
- def require_dsl
19
- if self.dsl.nil?
20
- raise Nanoc::Errors::GenericTrivial, "No checks defined (no Checks file present)"
21
- end
17
+ # @return [Boolean] true if a Checks file exists, false otherwise
18
+ def has_dsl?
19
+ File.exist?(CHECKS_FILENAME)
22
20
  end
23
21
 
24
22
  # Lists all available checks on stdout.
25
23
  #
26
24
  # @return [void]
27
25
  def list_checks
26
+ self.load_dsl_if_available
27
+
28
28
  puts "Available checks:"
29
29
  puts
30
30
  puts all_check_classes.map { |i| " " + i.identifier.to_s }.sort.join("\n")
@@ -34,6 +34,8 @@ module Nanoc::Extra::Checking
34
34
  #
35
35
  # @return [Boolean] true if successful, false otherwise
36
36
  def run_all
37
+ self.load_dsl_if_available
38
+
37
39
  self.run_check_classes(self.all_check_classes)
38
40
  end
39
41
 
@@ -41,6 +43,8 @@ module Nanoc::Extra::Checking
41
43
  #
42
44
  # @return [Boolean] true if successful, false otherwise
43
45
  def run_for_deploy
46
+ self.require_dsl
47
+
44
48
  return true if self.dsl.nil?
45
49
  self.run_check_classes(self.check_classes_named(self.dsl.deploy_checks))
46
50
  end
@@ -51,21 +55,33 @@ module Nanoc::Extra::Checking
51
55
  #
52
56
  # @return [Boolean] true if successful, false otherwise
53
57
  def run_specific(check_class_names)
58
+ self.load_dsl_if_available
59
+
54
60
  self.run_check_classes(self.check_classes_named(check_class_names))
55
61
  end
56
62
 
57
63
  protected
58
64
 
59
- def dsl
65
+ def load_dsl_if_available
60
66
  @dsl_loaded ||= false
61
67
  if !@dsl_loaded
62
- if File.exist?('Checks')
63
- @dsl = Nanoc::Extra::Checking::DSL.from_file('Checks')
68
+ if self.has_dsl?
69
+ @dsl = Nanoc::Extra::Checking::DSL.from_file(CHECKS_FILENAME)
64
70
  else
65
71
  @dsl = nil
66
72
  end
67
73
  @dsl_loaded = true
68
74
  end
75
+ end
76
+
77
+ def require_dsl
78
+ self.load_dsl_if_available
79
+ if self.dsl.nil?
80
+ raise Nanoc::Errors::GenericTrivial, "No checks defined (no #{CHECKS_FILENAME} file present)"
81
+ end
82
+ end
83
+
84
+ def dsl
69
85
  @dsl
70
86
  end
71
87
 
@@ -36,7 +36,7 @@ module Nanoc::Filters
36
36
  end
37
37
 
38
38
  xml = ::Nokogiri::XML(content)
39
- xsl = ::Nokogiri::XSLT(assigns[:content])
39
+ xsl = ::Nokogiri::XSLT(assigns[:layout].raw_content)
40
40
 
41
41
  xsl.transform(xml, ::Nokogiri::XSLT.quote_params(params)).to_s
42
42
  end
@@ -43,4 +43,16 @@ class Nanoc::Extra::Checking::Checks::InternalLinksTest < MiniTest::Unit::TestCa
43
43
  end
44
44
  end
45
45
 
46
+ def test_remove_query_string
47
+ with_site do |site|
48
+ FileUtils.mkdir_p('output/stuff')
49
+ File.open('output/stuff/right', 'w') { |io| io.write('hi') }
50
+
51
+ check = Nanoc::Extra::Checking::Checks::InternalLinks.new(site)
52
+
53
+ assert check.send(:valid?, 'stuff/right?foo=123', 'output/origin')
54
+ refute check.send(:valid?, 'stuff/wrong?foo=123', 'output/origin')
55
+ end
56
+ end
57
+
46
58
  end
@@ -4,7 +4,7 @@ class Nanoc::Extra::Checking::RunnerTest < MiniTest::Unit::TestCase
4
4
 
5
5
  include Nanoc::TestHelpers
6
6
 
7
- def test_run
7
+ def test_run_specific
8
8
  with_site do |site|
9
9
  File.open('output/blah', 'w') { |io| io.write('I am stale! Haha!') }
10
10
  runner = Nanoc::Extra::Checking::Runner.new(site)
@@ -12,4 +12,36 @@ class Nanoc::Extra::Checking::RunnerTest < MiniTest::Unit::TestCase
12
12
  end
13
13
  end
14
14
 
15
+ def test_run_specific_custom
16
+ with_site do |site|
17
+ File.open('Checks', 'w') do |io|
18
+ io.write('check :my_foo_check do ; puts "I AM FOO!" ; end')
19
+ end
20
+
21
+ runner = Nanoc::Extra::Checking::Runner.new(site)
22
+ ios = capturing_stdio do
23
+ runner.run_specific(%w( my_foo_check ))
24
+ end
25
+
26
+ assert ios[:stdout].include?('I AM FOO!')
27
+ end
28
+ end
29
+
30
+ def test_list_checks
31
+ with_site do |site|
32
+ File.open('Checks', 'w') do |io|
33
+ io.write('check :my_foo_check do ; end')
34
+ end
35
+
36
+ runner = Nanoc::Extra::Checking::Runner.new(site)
37
+ ios = capturing_stdio do
38
+ runner.list_checks
39
+ end
40
+
41
+ assert ios[:stdout].include?('my_foo_check')
42
+ assert ios[:stdout].include?('internal_links')
43
+ assert ios[:stderr].empty?
44
+ end
45
+ end
46
+
15
47
  end
@@ -82,8 +82,7 @@ EOS
82
82
  if_have 'nokogiri' do
83
83
  layout = Nanoc::Layout.new(SAMPLE_XSL, {}, '/layout/')
84
84
 
85
- filter = ::Nanoc::Filters::XSL.new(
86
- :layout => layout, :content => SAMPLE_XSL)
85
+ filter = ::Nanoc::Filters::XSL.new(:layout => layout)
87
86
  result = filter.run(SAMPLE_XML_IN)
88
87
 
89
88
  assert_equal SAMPLE_XML_OUT, result
@@ -94,8 +93,7 @@ EOS
94
93
  if_have 'nokogiri' do
95
94
  layout = Nanoc::Layout.new(SAMPLE_XSL_WITH_PARAMS, {}, '/layout/')
96
95
 
97
- filter = ::Nanoc::Filters::XSL.new(
98
- :layout => layout, :content => SAMPLE_XSL_WITH_PARAMS)
96
+ filter = ::Nanoc::Filters::XSL.new(:layout => layout)
99
97
  result = filter.run(SAMPLE_XML_IN_WITH_PARAMS, :foo => 'bar')
100
98
 
101
99
  assert_equal SAMPLE_XML_OUT_WITH_PARAMS, result
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0b1
4
+ version: 3.5.0b2
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-12 00:00:00.000000000 Z
12
+ date: 2013-01-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cri