Class: Lookbook::ConfigStore

Inherits:
Object
  • Object
show all
Defined in:
lib/lookbook/stores/config_store.rb

Constant Summary collapse

CONFIG_FILE =
"config/app.yml"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = nil) ⇒ ConfigStore

Returns a new instance of ConfigStore.



8
9
10
# File 'lib/lookbook/stores/config_store.rb', line 8

def initialize(config = nil)
  @store = Store.new(config, recursive: true)
end

Instance Attribute Details

#storeObject (readonly)

Returns the value of attribute store.



6
7
8
# File 'lib/lookbook/stores/config_store.rb', line 6

def store
  @store
end

Class Method Details

.default_config(env: Rails.env) ⇒ Object



75
76
77
# File 'lib/lookbook/stores/config_store.rb', line 75

def self.default_config(env: Rails.env)
  ConfigLoader.call(CONFIG_FILE, env: env)
end

.init_from_config(env: Rails.env) ⇒ Object



71
72
73
# File 'lib/lookbook/stores/config_store.rb', line 71

def self.init_from_config(env: Rails.env)
  new(default_config(env: env))
end

Instance Method Details

#listen_extensions=(extensions = nil) ⇒ Object



38
39
40
# File 'lib/lookbook/stores/config_store.rb', line 38

def listen_extensions=(extensions = nil)
  store[:listen_extensions].push(*extensions.to_a).uniq!
end

#markdown_options=(options = nil) ⇒ Object



42
43
44
# File 'lib/lookbook/stores/config_store.rb', line 42

def markdown_options=(options = nil)
  store[:markdown_options].merge!(options.to_h)
end

#page_extensions=(extensions = nil) ⇒ Object



20
21
22
# File 'lib/lookbook/stores/config_store.rb', line 20

def page_extensions=(extensions = nil)
  store[:page_extensions].push(*extensions.to_a).uniq!
end

#page_paths=(paths = nil) ⇒ Object



16
17
18
# File 'lib/lookbook/stores/config_store.rb', line 16

def page_paths=(paths = nil)
  store[:page_paths].push(*paths.to_a)
end

#preview_display_paramsObject



28
29
30
31
# File 'lib/lookbook/stores/config_store.rb', line 28

def preview_display_params
  Lookbook.logger.warn "The `preview_display_params` config option has been renamed to `preview_display_options` and will be removed in v2.0"
  store[:preview_display_options]
end

#preview_display_params=(options) ⇒ Object



33
34
35
36
# File 'lib/lookbook/stores/config_store.rb', line 33

def preview_display_params=(options)
  Lookbook.logger.warn "The `preview_display_params` config option has been renamed to `preview_display_options` and will be removed in v2.0"
  store[:preview_display_options] = options.to_h
end

#preview_paths=(paths = nil) ⇒ Object



24
25
26
# File 'lib/lookbook/stores/config_store.rb', line 24

def preview_paths=(paths = nil)
  store[:preview_paths].push(*paths.to_a)
end

#preview_srcdoc=(enable) ⇒ Object



67
68
69
# File 'lib/lookbook/stores/config_store.rb', line 67

def preview_srcdoc=(enable)
  Lookbook.logger.warn "The `preview_srcdoc` config option is deprecated and will be removed in v2.0"
end

#project_name=(name) ⇒ Object



12
13
14
# File 'lib/lookbook/stores/config_store.rb', line 12

def project_name=(name)
  store[:project_name] = name == false ? nil : name
end

#runtime_parsing=(value) ⇒ Object



63
64
65
# File 'lib/lookbook/stores/config_store.rb', line 63

def runtime_parsing=(value)
  Lookbook.logger.warn "The `runtime_parsing` config option has been deprecated and will be removed in v2.0"
end

#ui_theme=(name) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/lookbook/stores/config_store.rb', line 46

def ui_theme=(name)
  name = name.to_s
  if Theme.valid_theme?(name)
    store[:ui_theme] = name
  else
    raise ConfigError.new("'#{name}' is not a valid Lookbook theme. ", scope: "app.config")
  end
end

#ui_theme_overrides(&block) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/lookbook/stores/config_store.rb', line 55

def ui_theme_overrides(&block)
  if block
    yield store[:ui_theme_overrides]
  else
    store[:ui_theme_overrides]
  end
end