class Pakyow::Presenter::Attributes::Set

Wraps the value for a set-type view attribute (e.g. class).

Behaves just like a normal Set.

Constants

VALUE_SEPARATOR

Public Class Methods

parse(value) click to toggle source
# File lib/pakyow/presenter/attributes/set.rb, line 48
def parse(value)
  if value.is_a?(Array) || value.is_a?(::Set)
    new(::Set.new(value.map { |v| ensure_html_safety(v) }))
  elsif value.respond_to?(:to_s)
    new(::Set.new(value.to_s.split(VALUE_SEPARATOR).map { |v| ensure_html_safety(v) }))
  else
    raise ArgumentError.new("expected value to be an Array, Set, or String")
  end
end

Public Instance Methods

<<(value) click to toggle source
# File lib/pakyow/presenter/attributes/set.rb, line 29
def <<(value)
  @value << ensure_html_safety(value)
end
add(value) click to toggle source
# File lib/pakyow/presenter/attributes/set.rb, line 33
def add(value)
  @value.add(ensure_html_safety(value))
end
delete(value) click to toggle source
# File lib/pakyow/presenter/attributes/set.rb, line 37
def delete(value)
  @value.delete(value.to_s)
end
include?(value) click to toggle source
# File lib/pakyow/presenter/attributes/set.rb, line 25
def include?(value)
  @value.include?(value.to_s)
end
to_s() click to toggle source
# File lib/pakyow/presenter/attributes/set.rb, line 41
def to_s
  @value.to_a.join(VALUE_SEPARATOR)
end