Module: Nanoc::Core::ContractsSupport
- Included in:
- ActionSequence, ActionSequenceBuilder, ActionSequenceBuilder::CannotCreateMultipleSnapshotsWithSameNameError, ChecksumCollection, CodeSnippet, Configuration, Content, Document, IdentifiableCollection, Identifier, ItemRep, LazyValue, Pattern, ProcessingActions::Snapshot, SnapshotDef
- Defined in:
- lib/nanoc/core/contracts_support.rb
Defined Under Namespace
Modules: DisabledContracts, EnabledContracts
Classes: Ignorer
Class Method Summary
collapse
Class Method Details
.enabled? ⇒ Boolean
111
112
113
|
# File 'lib/nanoc/core/contracts_support.rb', line 111
def self.enabled?
setup_once
end
|
.included(base) ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/nanoc/core/contracts_support.rb', line 115
def self.included(base)
should_enable = setup_once
if should_enable
unless base.include?(::Contracts::Core)
base.include(::Contracts::Core)
base.extend(EnabledContracts)
base.const_set('C', ::Contracts)
end
else
base.extend(DisabledContracts)
base.const_set('C', DisabledContracts)
end
end
|
.setup_once ⇒ Object
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/nanoc/core/contracts_support.rb', line 85
def self.setup_once
@_contracts_support__setup ||= false
return @_contracts_support__should_enable if @_contracts_support__setup
@_contracts_support__setup = true
contracts_loadable =
begin
require 'contracts'
true
rescue LoadError
false
end
@_contracts_support__should_enable = contracts_loadable && !ENV.key?('DISABLE_CONTRACTS')
if @_contracts_support__should_enable
::Contracts.const_set('Named', EnabledContracts::Named)
::Contracts.const_set('IterOf', EnabledContracts::IterOf)
::Contracts.const_set('AbsolutePathString', EnabledContracts::AbsolutePathString)
end
@_contracts_support__should_enable
end
|