Module: BulmaX::Dsl::Options::ClassMethods

Defined in:
lib/bulma_x/dsl/options.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#default_optionsObject (readonly)

Returns the value of attribute default_options.



7
8
9
# File 'lib/bulma_x/dsl/options.rb', line 7

def default_options
  @default_options
end

#optionsObject (readonly)

Returns the value of attribute options.



7
8
9
# File 'lib/bulma_x/dsl/options.rb', line 7

def options
  @options
end

Instance Method Details

#default_option(attribute_name, value) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
# File 'lib/bulma_x/dsl/options.rb', line 25

def default_option(attribute_name, value)
  @default_options ||= {}

  raise ArgumentError, "Option :#{attribute_name} does not exist" unless @options.key?(attribute_name)

  @default_options[attribute_name] = value.dup.freeze
end

#option(attribute_name, values: nil, default: nil, override: false) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/bulma_x/dsl/options.rb', line 9

def option(attribute_name, values: nil, default: nil, override: false)
  @options ||= Hash.new { |h, k| h[k] = [] }
  @default_options ||= {}

  if @options.key?(attribute_name) && !override
    raise ArgumentError,
          "Option :#{attribute_name} already defined on #{self}, use override: true to redefine it"
  end

  @options[attribute_name] = values
  @default_options[attribute_name] = default.dup.freeze

  define_prefixed_helpers(attribute_name, values)
  define_values_helper(attribute_name, values)
end

#remove_option(attribute_name) ⇒ Object



33
34
35
36
# File 'lib/bulma_x/dsl/options.rb', line 33

def remove_option(attribute_name)
  @options.delete(attribute_name)
  @default_options.delete(attribute_name)
end