Sha256: 36b4e0c8b96fb91cd636e44f3bfbd3db49ad56a6ff483da20aa36fa42f61c2e9
Contents?: true
Size: 1.28 KB
Versions: 3
Compression:
Stored size: 1.28 KB
Contents
class Card module ActiveRecordHelper def create_card args resolve_name_conflict args Card.create! args end # if card with same name exists move it out of the way def create_card! args create_card args.reverse_merge(rename_if_conflict: :old) end def update_card name, args resolve_name_conflict args Card[name].update_attributes! args end def update_card! args update_card args.reverse_merge(rename_if_conflict: :new) end def create_or_update name_or_args, args={} if name_or_args.is_a?(Hash) name = name_or_args.delete :name args = name_or_args else name = name_or_args end if Card[name] update_card name, args else create_card args.merge(name: name) end end def create_or_update! name_or_args, args=nil if name_or_args.is_a?(Hash) name = name_or_args.delete(:name) args = name_or_args else name = name_or_args args ||= {} end create_or_update name, args.reverse_merge(rename_if_conflict: :new) end def resolve_name_conflict args rename = args.delete :rename_if_conflict return unless rename args[:name] = Card.uniquify_name args[:name], rename end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
card-1.18.6 | lib/card/active_record_helper.rb |
card-1.18.5 | lib/card/active_record_helper.rb |
card-1.18.4 | lib/card/active_record_helper.rb |