Class: BBC::A11y::Configuration::DSL

Inherits:
Object
  • Object
show all
Defined in:
lib/bbc/a11y/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config, config_filename = nil) ⇒ DSL

Returns a new instance of DSL.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/bbc/a11y/configuration.rb', line 98

def initialize(config, config_filename = nil)
  @settings = Settings.new
  @general_page_settings = []
  begin
    if config_filename
      instance_eval config, config_filename
    else
      instance_eval &config
    end
  rescue NoMethodError => error
    method_name = error.message.scan(/\`(.*)'/)[0][0]
    raise Configuration::ParseError, "`#{method_name}` is not part of the configuration language", error.backtrace
  rescue => error
    raise Configuration::ParseError, error.message, error.backtrace
  end
  @settings = settings.with_pages(apply_general_settings(settings.pages))
end

Instance Attribute Details

#settingsObject (readonly)

Returns the value of attribute settings.



96
97
98
# File 'lib/bbc/a11y/configuration.rb', line 96

def settings
  @settings
end

Instance Method Details

#after_all(&block) ⇒ Object



120
121
122
# File 'lib/bbc/a11y/configuration.rb', line 120

def after_all(&block)
  settings.after_all_hooks << block
end

#before_all(&block) ⇒ Object



116
117
118
# File 'lib/bbc/a11y/configuration.rb', line 116

def before_all(&block)
  settings.before_all_hooks << block
end

#for_pages_matching(url, &block) ⇒ Object



128
129
130
# File 'lib/bbc/a11y/configuration.rb', line 128

def for_pages_matching(url, &block)
  @general_page_settings << PageDSL.new(url, block).settings
end

#page(url, &block) ⇒ Object



124
125
126
# File 'lib/bbc/a11y/configuration.rb', line 124

def page(url, &block)
  settings.pages << PageDSL.new(url, block).settings
end