Sha256: 643b669d3878ecc0b0f37bdf975d33dd6d10c1d5803552a90b4ffedd65bf1875

Contents?: true

Size: 1.28 KB

Versions: 13

Compression:

Stored size: 1.28 KB

Contents

event :add_and_drop_items, :prepare_to_validate, on: :save do
  adds = Env.params["add_item"]
  drops = Env.params["drop_item"]
  Array.wrap(adds).each { |i| add_item i } if adds
  Array.wrap(drops).each { |i| drop_item i } if drops
end

event :insert_item_event, :prepare_to_validate,
      on: :save, when: proc { Env.params["insert_item"] } do
  index = Env.params["item_index"] || 0
  insert_item index.to_i, Env.params["insert_item"]
end

def items= array
  self.content = ""
  array.each { |i| self << i }
  save!
end

def << item
  add_item Card::Name[item]
end

def add_item name, allow_duplicates=false
  return if !allow_duplicates && include_item?(name)
  self.content = "[[#{(item_names << name).reject(&:blank?) * "]]\n[["}]]"
end

def add_item! name
  add_item(name) && save!
end

def drop_item name
  return unless include_item? name
  key = name.to_name.key
  new_names = item_names.reject { |n| n.to_name.key == key }
  self.content = new_names.empty? ? "" : "[[#{new_names * "]]\n[["}]]"
end

def drop_item! name
  drop_item name
  save!
end

def insert_item index, name
  new_names = item_names
  new_names.delete name
  new_names.insert index, name
  self.content = new_names.map { |new_name| "[[#{new_name}]]" }.join "\n"
end

def insert_item! index, name
  insert_item index, name
  save!
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
card-1.94.1 mod/pointer/set/abstract/02_pointer/item.rb
card-1.94.0 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.13 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.12 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.11 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.10 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.9 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.8 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.7 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.6 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.5 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.4 mod/pointer/set/abstract/02_pointer/item.rb
card-1.93.3 mod/pointer/set/abstract/02_pointer/item.rb