Module: Card::Model::SaveHelper
- Includes:
- SaveArguments, SaveHelperHelper
- Included in:
- Cardio::Migration
- Defined in:
- lib/card/model/save_helper.rb,
lib/card/model/save_helper/save_arguments.rb,
lib/card/model/save_helper/save_helper_helper.rb
Overview
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)
Defined Under Namespace
Modules: SaveArguments, SaveHelperHelper
Constant Summary
Constants included from SaveHelperHelper
SaveHelperHelper::CARDTYPE_METHOD_REGEXP
Instance Method Summary collapse
-
#add_script(name, opts = {}) ⇒ Object
TODO: this is too specific for this.
- #create_card(name_or_args, content_or_args = nil) ⇒ Object (also: #create)
-
#create_card!(name_or_args, content_or_args = nil) ⇒ Object
(also: #create!)
if card with same name exists move it out of the way.
- #create_or_update_card(name_or_args, content_or_args = nil) ⇒ Object (also: #create_or_update)
- #create_or_update_card!(name_or_args, content_or_args = nil) ⇒ Object (also: #create_or_update!)
- #delete_card(name) ⇒ Object (also: #delete)
- #delete_code_card(name) ⇒ Object
-
#ensure_card(name_or_args, content_or_args = nil) ⇒ Object
(also: #ensure)
create if card doesn’t exist updates existing card only if given attributes are different except the name.
-
#ensure_card!(name_or_args, content_or_args = nil) ⇒ Object
(also: #ensure!)
create if card doesn’t exist updates existing card only if given attributes are different including the name For example if a card with name “under_score” exists then ‘ensure_card “Under Score”` renames it to “Under Score”.
-
#ensure_code_card(name_or_args, content_or_args = nil) ⇒ Object
like ensure_card but derives codename from name if no codename is given.
-
#ensure_trait(name, codename, args = {}) ⇒ Object
Creates or updates a trait card with codename and right rules.
- #ensure_trait_rule(trait, setting, value) ⇒ Object
- #update_card(name, content_or_args) ⇒ Object (also: #update)
- #update_card!(name, content_or_args) ⇒ Object (also: #update!)
- #with_user(user_name, &block) ⇒ Object
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Card::Model::SaveHelper::SaveHelperHelper
Instance Method Details
#add_script(name, opts = {}) ⇒ Object
TODO: this is too specific for this
123 124 125 126 127 128 129 130 |
# File 'lib/card/model/save_helper.rb', line 123 def add_script name, opts={} name.sub!(/^script:?\s?/, "") # in case name is given with prefix # remove it so that we don't double it add_coderule_item name, "script", opts[:type_id] || Card::CoffeeScriptID, opts[:to] || "*all+*script" end |
#create_card(name_or_args, content_or_args = nil) ⇒ Object Also known as: create
19 20 21 |
# 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 |
#create_card!(name_or_args, content_or_args = nil) ⇒ Object Also known as: create!
if card with same name exists move it out of the way
24 25 26 27 |
# 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 |
#create_or_update_card(name_or_args, content_or_args = nil) ⇒ Object Also known as: create_or_update
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/card/model/save_helper.rb', line 40 def create_or_update_card name_or_args, content_or_args=nil name = name_from_args name_or_args if Card[name] args = standardize_update_args name_or_args, content_or_args update_card(name, args) else args = standardize_args name_or_args, content_or_args create_card(args) end end |
#create_or_update_card!(name_or_args, content_or_args = nil) ⇒ Object Also known as: create_or_update!
117 118 119 120 |
# File 'lib/card/model/save_helper.rb', line 117 def create_or_update_card! name_or_args, content_or_args=nil args = standardize_args name_or_args, content_or_args create_or_update args.reverse_merge(rename_if_conflict: :new) end |
#delete_card(name) ⇒ Object Also known as: delete
52 53 54 55 56 |
# File 'lib/card/model/save_helper.rb', line 52 def delete_card name return unless Card.exist?(name) Card[name].delete! end |
#delete_code_card(name) ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/card/model/save_helper.rb', line 58 def delete_code_card name return unless delete_code_card? name card = Card[name] card.update! codename: nil card.delete! update_referers: true end |
#ensure_card(name_or_args, content_or_args = nil) ⇒ Object Also known as: ensure
create if card doesn’t exist updates existing card only if given attributes are different except the name
73 74 75 76 |
# File 'lib/card/model/save_helper.rb', line 73 def ensure_card name_or_args, content_or_args=nil name, args = standardize_ensure_args name_or_args, content_or_args ensure_card_simplified name, args end |
#ensure_card!(name_or_args, content_or_args = nil) ⇒ Object Also known as: ensure!
create if card doesn’t exist updates existing card only if given attributes are different including the name For example if a card with name “under_score” exists then ‘ensure_card “Under Score”` renames it to “Under Score”
91 92 93 94 |
# File 'lib/card/model/save_helper.rb', line 91 def ensure_card! name_or_args, content_or_args=nil name, args = standardize_ensure_args name_or_args, content_or_args ensure_card_simplified name, add_name(name, args) end |
#ensure_code_card(name_or_args, content_or_args = nil) ⇒ Object
like ensure_card but derives codename from name if no codename is given. The derived codename is all lower case with underscores; “*” and “:” are removed
80 81 82 83 84 |
# File 'lib/card/model/save_helper.rb', line 80 def ensure_code_card name_or_args, content_or_args=nil name, args = standardize_ensure_args name_or_args, content_or_args args[:codename] = codename_from_name(name) unless args[:codename] ensure_card_simplified name, args end |
#ensure_trait(name, codename, args = {}) ⇒ Object
Creates or updates a trait card with codename and right rules. Content for rules that are pointer cards by default is converted to pointer format.
104 105 106 107 108 109 |
# File 'lib/card/model/save_helper.rb', line 104 def ensure_trait name, codename, args={} ensure_card name, codename: codename args.each do |setting, value| ensure_trait_rule name, setting, value end end |
#ensure_trait_rule(trait, setting, value) ⇒ Object
111 112 113 114 115 |
# File 'lib/card/model/save_helper.rb', line 111 def ensure_trait_rule trait, setting, value validate_setting setting card_args = normalize_trait_rule_args setting, value ensure_card [trait, :right, setting], card_args end |
#update_card(name, content_or_args) ⇒ Object Also known as: update
29 30 31 32 33 |
# 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 |
#update_card!(name, content_or_args) ⇒ Object Also known as: update!
35 36 37 38 |
# 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 |