Class: Metanorma::Release::Config
- Inherits:
-
Object
- Object
- Metanorma::Release::Config
- Defined in:
- lib/metanorma/release/config.rb
Class Method Summary collapse
Instance Method Summary collapse
- #channels ⇒ Object
- #document_entries ⇒ Object
- #documents ⇒ Object
-
#initialize(data) ⇒ Config
constructor
A new instance of Config.
- #org ⇒ Object
- #resolve_channels(publication) ⇒ Object
- #slug_config ⇒ Object
- #slug_default_strategy ⇒ Object
- #slug_strategies ⇒ Object
Constructor Details
#initialize(data) ⇒ Config
Returns a new instance of Config.
26 27 28 |
# File 'lib/metanorma/release/config.rb', line 26 def initialize(data) @data = data end |
Class Method Details
.defaults ⇒ Object
22 23 24 |
# File 'lib/metanorma/release/config.rb', line 22 def self.defaults new({}) end |
.from_file(path) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/metanorma/release/config.rb', line 13 def self.from_file(path) unless File.exist?(path) raise ArgumentError, "Config file not found: #{path}" end from_yaml(File.read(path)) end |
.from_yaml(yaml_string) ⇒ Object
8 9 10 11 |
# File 'lib/metanorma/release/config.rb', line 8 def self.from_yaml(yaml_string) data = YAML.safe_load(yaml_string, permitted_classes: [Symbol]) new(data || {}) end |
Instance Method Details
#channels ⇒ Object
34 35 36 |
# File 'lib/metanorma/release/config.rb', line 34 def channels @data.fetch("channels", []) end |
#document_entries ⇒ Object
54 55 56 |
# File 'lib/metanorma/release/config.rb', line 54 def document_entries @document_entries ||= documents.map { |d| DocumentEntry.new(d) } end |
#documents ⇒ Object
50 51 52 |
# File 'lib/metanorma/release/config.rb', line 50 def documents @data.fetch("documents", []) end |
#org ⇒ Object
30 31 32 |
# File 'lib/metanorma/release/config.rb', line 30 def org @data["org"] end |
#resolve_channels(publication) ⇒ Object
58 59 60 |
# File 'lib/metanorma/release/config.rb', line 58 def resolve_channels(publication) ChannelResolver.resolve(publication, self) end |
#slug_config ⇒ Object
38 39 40 |
# File 'lib/metanorma/release/config.rb', line 38 def slug_config @data.fetch("slug", {}) end |
#slug_default_strategy ⇒ Object
42 43 44 |
# File 'lib/metanorma/release/config.rb', line 42 def slug_default_strategy slug_config.fetch("default", "edition") end |
#slug_strategies ⇒ Object
46 47 48 |
# File 'lib/metanorma/release/config.rb', line 46 def slug_strategies slug_config.fetch("strategies", {}) end |