Sha256: 689acd5a582ec39471f79fe5e7841f355a1037ed30133557662a4c9fa9bb232b
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
def event_applies? opts on_condition_applies?(opts[:on]) && changed_condition_applies?(opts[:changed]) && when_condition_applies?(opts[:when]) end def rescue_event e @action = nil expire_pieces subcards.each(&:expire_pieces) raise e # rescue Card::Cancel # false end private def wrong_stage opts return false if director.stage_ok? opts if !stage "phase method #{method} called outside of event phases" else "#{opts.inspect} method #{method} called in stage #{stage}" end end def wrong_action action return false if on_condition_applies? action "on: #{action} method #{method} called on #{@action}" end def on_condition_applies? action if action Array.wrap(action).member? @action else true end end def changed_condition_applies? db_columns case db_columns when Symbol return single_changed_condition_applies?(db_columns) when Array db_columns.each do |col| return true if single_changed_condition_applies? col end else return true end false end def single_changed_condition_applies? db_column if db_column db_column = case db_column.to_sym when :content then 'db_content' when :type then 'type_id' else db_column.to_s end @action != :delete && changes[db_column] else true end end def when_condition_applies? block if block block.call self else true end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
card-1.18.6 | mod/01_core/set/all/event.rb |
card-1.18.5 | mod/01_core/set/all/event.rb |