module Card::Model::SaveHelper

API to create and update cards. It is intended as a helper for “external” scripts (seeding, testing, migrating, etc) and not for internal application code. The general pattern is: All methods use the ActiveRecord !-methods that throw exceptions if somethings fails. All !-methods in this module rename existing cards to resolve name conflicts)

Public Instance Methods

create(name_or_args, content_or_args=nil)
Alias for: create_card
create!(name_or_args, content_or_args=nil)
Alias for: create_card!
create_card(name_or_args, content_or_args=nil) click to toggle source
# File lib/card/model/save_helper.rb, line 19
def create_card name_or_args, content_or_args=nil
  Card.create! create_args(name_or_args, content_or_args)
end
Also aliased as: create
create_card!(name_or_args, content_or_args=nil) click to toggle source

if card with same name exists move it out of the way

# File lib/card/model/save_helper.rb, line 24
def create_card! name_or_args, content_or_args=nil
  args = standardize_args name_or_args, content_or_args
  create_card args.reverse_merge(rename_if_conflict: :old)
end
Also aliased as: create!
delete(name)
Alias for: delete_card
delete_card(name) click to toggle source
# File lib/card/model/save_helper.rb, line 40
def delete_card name
  return unless Card.exist?(name)

  Card[name].delete!
end
Also aliased as: delete
delete_code_card(name) click to toggle source
# File lib/card/model/save_helper.rb, line 46
def delete_code_card name
  return unless delete_code_card? name

  card = Card[name]
  card.update! codename: ""
  card.delete!
end
update(name, content_or_args)
Alias for: update_card
update!(name, content_or_args)
Alias for: update_card!
update_card(name, content_or_args) click to toggle source
# File lib/card/model/save_helper.rb, line 29
def update_card name, content_or_args
  args = standardize_update_args name, content_or_args
  resolve_name_conflict args
  Card[name]&.update! args
end
Also aliased as: update
update_card!(name, content_or_args) click to toggle source
# File lib/card/model/save_helper.rb, line 35
def update_card! name, content_or_args
  args = standardize_update_args name, content_or_args
  update_card name, args.reverse_merge(rename_if_conflict: :new)
end
Also aliased as: update!
with_user(user_name, &block) click to toggle source
# File lib/card/model/save_helper.rb, line 15
def with_user user_name, &block
  Card::Auth.with(current_id: user_name.card_id, &block)
end