nanoc-core 4.11.9 → 4.11.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0c47871b0eb4f46b025c03db997f1b12971c30ca2a0ce5d5c00a6ad346bacd5
4
- data.tar.gz: 558b36a88d1e4b943154368f7e2ee820dcf8ae8606cb5bb67b45dfaf2ba7cd07
3
+ metadata.gz: bde53d2e1bec25a921b1f9113fbec46413e9609a0c23963ddb771c2d5b0a1b67
4
+ data.tar.gz: 8ec1effe075cf43aa17a959bb38ca5d39c34f29d2aed8a860e705198f07c19b9
5
5
  SHA512:
6
- metadata.gz: 701578c317c2879ceca2e40efc2029f2b43cde150f53bd80c65383c18d0c8f80580e130e191082968302f68d5d148fd995e04f98893e3e57f24f310eb65ef4d4
7
- data.tar.gz: f8511f35512c5dc0e041482691ddd0283a9d686e101aac99336653aa5b404cfaebad74dc33487d887daadce850d946b9c33d427d3afa8dab2a7e6d6822122224
6
+ metadata.gz: 7f7ff9851b6196ddfb5b9ec002f127176d74d7f9da5d949c477c00b052ceb2d2d412a70cc203691306986d6c6f87d65e4be2ca963e2ab67d9089eaf2f98378ae
7
+ data.tar.gz: fa0ff8cf4addec45b8ce38d8451a1da93bcf2e53ca5de12dcd3c46454f0c9571ec665c9c2417a549b26bd3449a62ae2836c122d59a832ab18f572afc4b032c4b
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nanoc
4
+ module Core
5
+ module Assertions
6
+ class AssertionFailure < Nanoc::Core::Error
7
+ end
8
+
9
+ module Mixin
10
+ def assert(assertion)
11
+ return unless Nanoc::Core::ContractsSupport.enabled?
12
+
13
+ unless assertion.call
14
+ raise AssertionFailure, "assertion failed: #{assertion.class}"
15
+ end
16
+ end
17
+ end
18
+
19
+ class Base
20
+ def call
21
+ raise NotImplementedError
22
+ end
23
+ end
24
+
25
+ class AllItemRepsHaveCompiledContent < Nanoc::Core::Assertions::Base
26
+ include Nanoc::Core::ContractsSupport
27
+
28
+ contract C::KeywordArgs[compiled_content_cache: C::Or[Nanoc::Core::CompiledContentCache, Nanoc::Core::TextualCompiledContentCache], item_reps: Nanoc::Core::ItemRepRepo] => C::Any
29
+ def initialize(compiled_content_cache:, item_reps:)
30
+ @compiled_content_cache = compiled_content_cache
31
+ @item_reps = item_reps
32
+ end
33
+
34
+ contract C::None => C::Bool
35
+ def call
36
+ @item_reps.all? do |rep|
37
+ @compiled_content_cache[rep]
38
+ end
39
+ end
40
+ end
41
+
42
+ class PathIsAbsolute < Nanoc::Core::Assertions::Base
43
+ include Nanoc::Core::ContractsSupport
44
+
45
+ contract C::KeywordArgs[path: String] => C::Any
46
+ def initialize(path:)
47
+ @path = path
48
+ end
49
+
50
+ contract C::None => C::Bool
51
+ def call
52
+ Pathname.new(@path).absolute?
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nanoc
4
+ module Core
5
+ class CompilationStage
6
+ def call(*args)
7
+ notify(:stage_started)
8
+ res = Nanoc::Core::Instrumentor.call(:stage_ran, self.class) do
9
+ run(*args)
10
+ end
11
+ notify(:stage_ended)
12
+ res
13
+ rescue
14
+ notify(:stage_aborted)
15
+ raise
16
+ end
17
+
18
+ def run(*)
19
+ raise NotImplementedError
20
+ end
21
+
22
+ private
23
+
24
+ def notify(sym)
25
+ name = self.class.to_s.sub(/^.*::/, '')
26
+ Nanoc::Core::NotificationCenter.post(sym, name)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -11,19 +11,6 @@ module Nanoc
11
11
  C_ATTR = C::Or[C::IterOf[Symbol], C::Bool]
12
12
  C_ARGS = C::KeywordArgs[raw_content: C::Optional[C_RAW_CONTENT], attributes: C::Optional[C_ATTR], compiled_content: C::Optional[C::Bool], path: C::Optional[C::Bool]]
13
13
 
14
- class Null
15
- include Nanoc::Core::ContractsSupport
16
-
17
- contract C_OBJ, C_ARGS => C::Any
18
- def enter(_obj, raw_content: false, attributes: false, compiled_content: false, path: false); end
19
-
20
- contract C_OBJ => C::Any
21
- def exit; end
22
-
23
- contract C_OBJ, C_ARGS => C::Any
24
- def bounce(_obj, raw_content: false, attributes: false, compiled_content: false, path: false); end
25
- end
26
-
27
14
  attr_reader :dependency_store
28
15
 
29
16
  def initialize(dependency_store)
@@ -58,6 +45,21 @@ module Nanoc
58
45
  enter(obj, raw_content: raw_content, attributes: attributes, compiled_content: compiled_content, path: path)
59
46
  exit
60
47
  end
48
+
49
+ class Null < DependencyTracker
50
+ include Nanoc::Core::ContractsSupport
51
+
52
+ def initialize; end
53
+
54
+ contract C_OBJ, C_ARGS => C::Any
55
+ def enter(_obj, raw_content: false, attributes: false, compiled_content: false, path: false); end
56
+
57
+ contract C_OBJ => C::Any
58
+ def exit; end
59
+
60
+ contract C_OBJ, C_ARGS => C::Any
61
+ def bounce(_obj, raw_content: false, attributes: false, compiled_content: false, path: false); end
62
+ end
61
63
  end
62
64
  end
63
65
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Nanoc
4
4
  module Core
5
- VERSION = '4.11.9'
5
+ VERSION = '4.11.10'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.11.9
4
+ version: 4.11.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Defreyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-17 00:00:00.000000000 Z
11
+ date: 2019-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ddmemoize
@@ -123,12 +123,14 @@ files:
123
123
  - lib/nanoc/core/action_sequence_builder.rb
124
124
  - lib/nanoc/core/action_sequence_store.rb
125
125
  - lib/nanoc/core/aggregate_data_source.rb
126
+ - lib/nanoc/core/assertions.rb
126
127
  - lib/nanoc/core/binary_compiled_content_cache.rb
127
128
  - lib/nanoc/core/binary_content.rb
128
129
  - lib/nanoc/core/checksum_collection.rb
129
130
  - lib/nanoc/core/checksum_store.rb
130
131
  - lib/nanoc/core/checksummer.rb
131
132
  - lib/nanoc/core/code_snippet.rb
133
+ - lib/nanoc/core/compilation_stage.rb
132
134
  - lib/nanoc/core/compiled_content_cache.rb
133
135
  - lib/nanoc/core/compiled_content_store.rb
134
136
  - lib/nanoc/core/configuration-schema.json