Class: Workarea::Storefront::ProductViewModel::Option

Inherits:
Object
  • Object
show all
Defined in:
app/view_models/workarea/storefront/product_view_model/option.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(product, slug, selections, options = {}) ⇒ Option

Returns a new instance of Option.



7
8
9
10
11
12
# File 'app/view_models/workarea/storefront/product_view_model/option.rb', line 7

def initialize(product, slug, selections, options = {})
  @product = product
  @slug = slug.optionize
  @selections = selections
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'app/view_models/workarea/storefront/product_view_model/option.rb', line 5

def options
  @options
end

#productObject (readonly)

Returns the value of attribute product.



5
6
7
# File 'app/view_models/workarea/storefront/product_view_model/option.rb', line 5

def product
  @product
end

#selectionsObject (readonly)

Returns the value of attribute selections.



5
6
7
# File 'app/view_models/workarea/storefront/product_view_model/option.rb', line 5

def selections
  @selections
end

#slugObject (readonly)

Returns the value of attribute slug.



5
6
7
# File 'app/view_models/workarea/storefront/product_view_model/option.rb', line 5

def slug
  @slug
end

Instance Method Details

#currentObject



18
19
20
# File 'app/view_models/workarea/storefront/product_view_model/option.rb', line 18

def current
  options[slug].presence_in(selections)
end

#nameObject



14
15
16
# File 'app/view_models/workarea/storefront/product_view_model/option.rb', line 14

def name
  slug.titleize
end