Module: Card::MachineInput
- Included in:
- Set::Type::CoffeeScript, Set::Type::Css, Set::Type::JavaScript, Set::Type::Skin
- Defined in:
- mod/03_machines/lib/card/machine_input.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
- .define_delete_events(event_suffix, host_class) ⇒ Object
- .define_update_event(event_suffix, host_class) ⇒ Object
- .included(host_class) ⇒ Object
- .search_involved_machines(name, host_class) ⇒ Object
Class Method Details
.define_delete_events(event_suffix, host_class) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'mod/03_machines/lib/card/machine_input.rb', line 26 def self.define_delete_events event_suffix, host_class event_name = "before_machine_input_deleted_#{event_suffix}".to_sym host_class.event event_name, :store, on: :delete do # exclude self because it's on the way to the trash # otherwise it will be created again with the reset_machine_output # call in the event below @involved_machines = Card::MachineInput.search_involved_machines(name, host_class) .reject { |card| card == self } end event_name = "after_machine_input_deleted_#{event_suffix}".to_sym host_class.event event_name, :finalize, on: :delete do @involved_machines.each do |item| item.reset_machine_output! if item.is_a? Machine end end end |
.define_update_event(event_suffix, host_class) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'mod/03_machines/lib/card/machine_input.rb', line 44 def self.define_update_event event_suffix, host_class host_class.event( "after_machine_input_updated_#{event_suffix}".to_sym, :integrate, on: :save ) do Card::MachineInput.search_involved_machines(name, host_class) .each do |item| item.reset_machine_output! if item.is_a? Machine end end end |
.included(host_class) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'mod/03_machines/lib/card/machine_input.rb', line 15 def self.included host_class host_class.extend(ClassMethods) host_class.machines_wql = {} host_class.machine_input do format._render_raw end event_suffix = host_class.name.tr ':', '_' define_update_event event_suffix, host_class define_delete_events event_suffix, host_class end |
.search_involved_machines(name, host_class) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'mod/03_machines/lib/card/machine_input.rb', line 56 def self.search_involved_machines name, host_class wql_statement = { right_plus: [ { codename: 'machine_input' }, { link_to: name } ] }.merge(host_class.machines_wql) Card.search(wql_statement) end |