Class: Bookwatch::Config::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/bookwatch/config/configuration.rb

Direct Known Subclasses

Imprint::Configuration

Constant Summary collapse

CONFIG_REQUIRED_KEYS =
%w(book_repo public_host)
CONFIG_OPTIONAL_KEYS =
%w(archive_menu book_repo_url cred_repo cred_repo_url repo_link_enabled repo_links feedback_enabled layout_repo layout_repo_ref layout_repo_url sections)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Configuration

Returns a new instance of Configuration.



54
55
56
57
# File 'lib/bookwatch/config/configuration.rb', line 54

def initialize(config)
  @config = config
  @products = assemble_products || []
end

Instance Attribute Details

#productsObject (readonly)

Returns the value of attribute products.



104
105
106
# File 'lib/bookwatch/config/configuration.rb', line 104

def products
  @products
end

Class Method Details

.parse(input_config) ⇒ Object



11
12
13
14
# File 'lib/bookwatch/config/configuration.rb', line 11

def parse(input_config)
  section_configs = to_section_configs(combined_sections(input_config))
  parse_sections(input_config, section_configs)
end

Instance Method Details

#==(o) ⇒ Object Also known as: eql?



98
99
100
# File 'lib/bookwatch/config/configuration.rb', line 98

def ==(o)
  o.class == self.class && o.instance_variable_get(:@config) == @config
end


74
75
76
# File 'lib/bookwatch/config/configuration.rb', line 74

def broken_link_exclusions
  config.fetch(:broken_link_exclusions, /(?!.*)/)
end

#elastic_search?Boolean

Returns:

  • (Boolean)


94
95
96
# File 'lib/bookwatch/config/configuration.rb', line 94

def elastic_search?
  config.fetch(:elastic_search, false)
end

#has_option?(key) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/bookwatch/config/configuration.rb', line 90

def has_option?(key)
  !!config[key.to_sym]
end

#merge(other_configuration) ⇒ Object



82
83
84
# File 'lib/bookwatch/config/configuration.rb', line 82

def merge(other_configuration)
  Configuration.new(config.merge(other_configuration.instance_variable_get(:@config)))
end

#merge_sections(incoming_sections) ⇒ Object



86
87
88
# File 'lib/bookwatch/config/configuration.rb', line 86

def merge_sections(incoming_sections)
  merge(Configuration.new(sections: sections + incoming_sections))
end

#template_variablesObject



78
79
80
# File 'lib/bookwatch/config/configuration.rb', line 78

def template_variables
  config.fetch(:template_variables, {})
end