Class: Card

Inherits:
ApplicationRecord show all
Extended by:
Mark
Defined in:
lib/card.rb,
lib/card/env.rb,
lib/card/mod.rb,
lib/card/set.rb,
lib/card/auth.rb,
lib/card/mark.rb,
lib/card/name.rb,
lib/card/view.rb,
lib/card/cache.rb,
lib/card/dirty.rb,
lib/card/error.rb,
lib/card/query.rb,
lib/card/format.rb,
lib/card/mailer.rb,
lib/card/content.rb,
lib/card/version.rb,
lib/card/codename.rb,
lib/card/mod/dirs.rb,
lib/card/subcards.rb,
lib/card/migration.rb,
lib/card/reference.rb,
lib/card/set/event.rb,
lib/card/set/trait.rb,
lib/card/view/stub.rb,
lib/card/auth/proxy.rb,
lib/card/auth/setup.rb,
lib/card/mod/loader.rb,
lib/card/query/join.rb,
lib/card/set/basket.rb,
lib/card/set/format.rb,
lib/card/set/loader.rb,
lib/card/view/cache.rb,
lib/generators/card.rb,
lib/card/act_manager.rb,
lib/card/env/success.rb,
lib/card/format/nest.rb,
lib/card/query/value.rb,
lib/card/set/helpers.rb,
lib/card/set_pattern.rb,
lib/card/view/classy.rb,
lib/card/view/layout.rb,
lib/card/auth/current.rb,
lib/card/content/diff.rb,
lib/card/env/location.rb,
lib/card/format/error.rb,
lib/card/query/clause.rb,
lib/card/subcards/add.rb,
lib/card/view/options.rb,
lib/card/view/wrapper.rb,
lib/card/content/chunk.rb,
lib/card/content/clean.rb,
lib/card/format/render.rb,
lib/card/set/code_nest.rb,
lib/card/content/parser.rb,
lib/card/format/content.rb,
lib/card/format/nesting.rb,
lib/card/migration/core.rb,
lib/card/set/i18n_scope.rb,
lib/card/cache/temporary.rb,
lib/card/query/act_query.rb,
lib/card/set/inheritance.rb,
lib/card/subcards/relate.rb,
lib/card/subcards/remove.rb,
lib/card/view/visibility.rb,
lib/card/auth/permissions.rb,
lib/card/cache/persistent.rb,
lib/card/content/diff/lcs.rb,
lib/card/content/truncate.rb,
lib/card/migration/import.rb,
lib/card/query/card_query.rb,
lib/card/set/advanced_api.rb,
lib/card/set/i18n_scanner.rb,
lib/card/act_manager/stage.rb,
lib/card/cache/prepopulate.rb,
lib/card/format/nest/fetch.rb,
lib/card/format/permission.rb,
lib/card/mod/load_strategy.rb,
lib/card/model/save_helper.rb,
lib/card/set/event/options.rb,
lib/card/view/cache_action.rb,
lib/card/name/name_variants.rb,
lib/card/query/action_query.rb,
lib/card/set/format/wrapper.rb,
lib/card/set/required_field.rb,
lib/card/content/diff/result.rb,
lib/card/format/nesting/main.rb,
lib/card/format/nesting/mode.rb,
lib/card/format/registration.rb,
lib/card/mod/module_template.rb,
lib/card/query/sql_statement.rb,
lib/card/set/event/callbacks.rb,
lib/card/env/location_history.rb,
lib/card/format/context_names.rb,
lib/card/query/abstract_query.rb,
lib/card/query/card_query/run.rb,
lib/card/view/options/voo_api.rb,
lib/card/mod/loader/set_loader.rb,
lib/card/query/reference_query.rb,
lib/card/set/format/haml_views.rb,
lib/card/content/diff/processor.rb,
lib/card/mod/load_strategy/eval.rb,
lib/card/name/fields_and_traits.rb,
lib/card/view/options/key_lists.rb,
lib/card/migration/import/merger.rb,
lib/card/set/event/delayed_event.rb,
lib/card/format/method_delegation.rb,
lib/card/format/nesting/subformat.rb,
lib/card/migration/deck_structure.rb,
lib/card/query/abstract_query/tie.rb,
lib/card/query/card_query/sorting.rb,
lib/card/query/card_query/found_by.rb,
lib/card/query/sql_statement/joins.rb,
lib/card/query/sql_statement/order.rb,
lib/card/query/sql_statement/where.rb,
lib/card/act_manager/stage_director.rb,
lib/card/set/format/abstract_format.rb,
lib/card/mod/load_strategy/tmp_files.rb,
lib/card/migration/import/import_data.rb,
lib/card/tasks/card/file_card_creator.rb,
lib/generators/card/mod/mod_generator.rb,
lib/generators/card/set/set_generator.rb,
lib/card/act_manager/subdirector_array.rb,
lib/card/mod/loader/set_pattern_loader.rb,
lib/card/query/card_query/conjunctions.rb,
lib/card/query/card_query/normalization.rb,
lib/card/mod/load_strategy/set_tmp_files.rb,
lib/card/query/card_query/interpretation.rb,
lib/card/act_manager/stage_director/phases.rb,
lib/card/query/abstract_query/query_helper.rb,
lib/card/query/card_query/match_attributes.rb,
lib/generators/card/format/format_generator.rb,
lib/card/mod/load_strategy/pattern_tmp_files.rb,
lib/card/mod/load_strategy/set_binding_magic.rb,
lib/card/query/card_query/reference_attributes.rb,
lib/card/query/card_query/relational_attributes.rb,
lib/card/tasks/card/file_card_creator/haml_card.rb,
lib/generators/card/template/template_generator.rb,
lib/card/tasks/card/file_card_creator/style_card.rb,
lib/card/tasks/card/file_card_creator/script_card.rb,
lib/generators/card/migration/migration_generator.rb,
lib/card/migration/import/import_data/card_content.rb,
lib/card/tasks/card/file_card_creator/output_helper.rb,
lib/card/migration/import/import_data/card_attributes.rb,
lib/card/tasks/card/file_card_creator/abstract_file_card.rb,
lib/card/tasks/card/file_card_creator/abstract_file_card/ruby_file.rb,
lib/card/tasks/card/file_card_creator/abstract_file_card/source_file.rb,
lib/card/tasks/card/file_card_creator/abstract_file_card/migration_file.rb,
mod/core/format/data_format.rb,
mod/core/format/html_format.rb,
mod/core/format/text_format.rb,
mod/basic_formats/format/js_format.rb,
mod/email/format/email_html_format.rb,
mod/email/format/email_text_format.rb,
mod/basic_formats/format/css_format.rb,
mod/basic_formats/format/csv_format.rb,
mod/basic_formats/format/rss_format.rb,
mod/basic_formats/format/xml_format.rb,
mod/basic_formats/format/file_format.rb,
mod/basic_formats/format/json_format.rb,
mod/core/chunk/nest.rb,
mod/core/chunk/literal.rb,
mod/core/chunk/reference.rb,
mod/core/chunk/view_stub.rb,
mod/history/lib/card/act.rb,
mod/history/lib/card/action.rb,
mod/history/lib/card/change.rb,
mod/standard/lib/card/layout.rb,
mod/virtual/lib/card/virtual.rb,
mod/machines/lib/card/machine.rb,
mod/settings/lib/card/setting.rb,
mod/search/lib/card/filter_query.rb,
mod/follow/lib/card/follow_option.rb,
mod/history/lib/card/action/admin.rb,
mod/follow/lib/card/follower_stash.rb,
mod/history/lib/card/action/differ.rb,
mod/history/lib/card/act/act_renderer.rb,
mod/standard/lib/card/layout/card_layout.rb,
mod/standard/lib/card/layout/code_layout.rb,
mod/standard/lib/card/layout/proc_layout.rb,
mod/history/lib/card/action/action_renderer.rb,
mod/standard/lib/card/layout/unknown_layout.rb,
mod/history/lib/card/act/act_renderer/bridge_act_renderer.rb,
mod/history/lib/card/act/act_renderer/absolute_act_renderer.rb,
mod/history/lib/card/act/act_renderer/relative_act_renderer.rb,
tmpsets/set/mod002-core/all/erb.rb,
tmpsets/set/mod002-core/all/haml.rb,
tmpsets/set/mod002-core/all/name.rb,
tmpsets/set/mod002-core/all/type.rb,
tmpsets/set/mod002-core/all/debug.rb,
tmpsets/set/mod002-core/all/event.rb,
tmpsets/set/mod002-core/all/fetch.rb,
tmpsets/set/mod002-core/all/rules.rb,
tmpsets/set/mod002-core/all/trash.rb,
tmpsets/set/mod002-core/all/utils.rb,
tmpsets/set/mod013-email/right/cc.rb,
tmpsets/set/mod013-email/right/to.rb,
tmpsets/set/mod002-core/all/actify.rb,
tmpsets/set/mod002-core/all/export.rb,
tmpsets/set/mod002-core/all/phases.rb,
tmpsets/set/mod002-core/all/stages.rb,
tmpsets/set/mod002-core/all/states.rb,
tmpsets/set/mod013-email/right/bcc.rb,
tmpsets/set/mod001-admin/self/admin.rb,
tmpsets/set/mod002-core/all/content.rb,
tmpsets/set/mod002-core/all/pattern.rb,
tmpsets/set/mod013-email/all/follow.rb,
tmpsets/set/mod013-email/all/notify.rb,
tmpsets/set/mod013-email/right/from.rb,
tmpsets/set/mod013-email/self/never.rb,
tmpsets/set/mod002-core/all/subcards.rb,
tmpsets/set/mod011-machines/type/css.rb,
tmpsets/set/mod013-email/self/always.rb,
tmpsets/set/mod013-email/self/edited.rb,
tmpsets/set/mod013-email/self/follow.rb,
tmpsets/set/mod016-standard/self/now.rb,
tmpsets/set/mod016-standard/type/set.rb,
tmpsets/set/mod016-standard/type/uri.rb,
tmpsets/set/mod017-account/type/user.rb,
tmpsets/set/mod001-admin/self/version.rb,
tmpsets/set/mod011-machines/type/scss.rb,
tmpsets/set/mod011-machines/type/skin.rb,
tmpsets/set/mod012-settings/self/help.rb,
tmpsets/set/mod012-settings/self/read.rb,
tmpsets/set/mod013-email/all/observer.rb,
tmpsets/set/mod013-email/right/follow.rb,
tmpsets/set/mod013-email/self/created.rb,
tmpsets/set/mod016-standard/all/error.rb,
tmpsets/set/mod016-standard/all/links.rb,
tmpsets/set/mod016-standard/self/foot.rb,
tmpsets/set/mod016-standard/type/date.rb,
tmpsets/set/mod016-standard/type/list.rb,
tmpsets/set/mod017-account/right/salt.rb,
tmpsets/set/mod002-core/all/collection.rb,
tmpsets/set/mod002-core/all/initialize.rb,
tmpsets/set/mod002-core/all/references.rb,
tmpsets/set/mod002-core/all/templating.rb,
tmpsets/set/mod002-core/all/view_cache.rb,
tmpsets/set/mod003-history/all/actions.rb,
tmpsets/set/mod003-history/all/history.rb,
tmpsets/set/mod012-settings/right/help.rb,
tmpsets/set/mod012-settings/right/read.rb,
tmpsets/set/mod012-settings/self/input.rb,
tmpsets/set/mod012-settings/self/style.rb,
tmpsets/set/mod016-standard/type/basic.rb,
tmpsets/set/mod017-account/all/account.rb,
tmpsets/set/mod017-account/right/email.rb,
tmpsets/set/mod017-account/right/token.rb,
tmpsets/set/mod017-account/self/signin.rb,
tmpsets/set/mod017-account/type/signup.rb,
tmpsets/set/mod002-core/all/active_card.rb,
tmpsets/set/mod002-core/all/permissions.rb,
tmpsets/set/mod005-pointer/type/pointer.rb,
tmpsets/set/mod012-settings/right/style.rb,
tmpsets/set/mod012-settings/self/create.rb,
tmpsets/set/mod012-settings/self/delete.rb,
tmpsets/set/mod012-settings/self/layout.rb,
tmpsets/set/mod012-settings/self/script.rb,
tmpsets/set/mod012-settings/self/thanks.rb,
tmpsets/set/mod012-settings/self/update.rb,
tmpsets/set/mod013-email/all/email_html.rb,
tmpsets/set/mod013-email/all/email_text.rb,
tmpsets/set/mod016-standard/all/comment.rb,
tmpsets/set/mod016-standard/rstar/rules.rb,
tmpsets/set/mod016-standard/self/alerts.rb,
tmpsets/set/mod016-standard/self/navbox.rb,
tmpsets/set/mod016-standard/self/recent.rb,
tmpsets/set/mod016-standard/self/search.rb,
tmpsets/set/mod016-standard/type/number.rb,
tmpsets/set/mod016-standard/type/phrase.rb,
tmpsets/set/mod016-standard/type/toggle.rb,
tmpsets/set/mod017-account/right/status.rb,
tmpsets/set/mod001-admin/self/admin_info.rb,
tmpsets/set/mod004-basic_formats/all/rss.rb,
tmpsets/set/mod010-basic_types/type/html.rb,
tmpsets/set/mod012-settings/right/create.rb,
tmpsets/set/mod012-settings/right/delete.rb,
tmpsets/set/mod012-settings/right/script.rb,
tmpsets/set/mod012-settings/right/update.rb,
tmpsets/set/mod012-settings/self/captcha.rb,
tmpsets/set/mod012-settings/self/default.rb,
tmpsets/set/mod012-settings/self/options.rb,
tmpsets/set/mod012-settings/type/setting.rb,
tmpsets/set/mod013-email/right/followers.rb,
tmpsets/set/mod013-email/right/following.rb,
tmpsets/set/mod014-developer/right/debug.rb,
tmpsets/set/mod015-carrierwave/type/file.rb,
tmpsets/set/mod016-standard/type/session.rb,
tmpsets/set/mod017-account/right/account.rb,
tmpsets/set/mod004-basic_formats/all/base.rb,
tmpsets/set/mod004-basic_formats/all/file.rb,
tmpsets/set/mod004-basic_formats/all/json.rb,
tmpsets/set/mod004-basic_formats/all/text.rb,
tmpsets/set/mod012-settings/right/comment.rb,
tmpsets/set/mod012-settings/right/default.rb,
tmpsets/set/mod012-settings/self/add_help.rb,
tmpsets/set/mod012-settings/self/autoname.rb,
tmpsets/set/mod014-developer/all/view_viz.rb,
tmpsets/set/mod015-carrierwave/self/admin.rb,
tmpsets/set/mod015-carrierwave/type/image.rb,
tmpsets/set/mod016-standard/type/cardtype.rb,
tmpsets/set/mod017-account/right/password.rb,
tmpsets/set/mod002-core/abstract/code_file.rb,
tmpsets/set/mod004-basic_formats/self/head.rb,
tmpsets/set/mod012-settings/right/add_help.rb,
tmpsets/set/mod012-settings/self/on_create.rb,
tmpsets/set/mod012-settings/self/on_delete.rb,
tmpsets/set/mod012-settings/self/on_update.rb,
tmpsets/set/mod012-settings/self/structure.rb,
tmpsets/set/mod014-developer/all/event_viz.rb,
tmpsets/set/mod016-standard/self/codenames.rb,
tmpsets/set/mod016-standard/type/listed_by.rb,
tmpsets/set/mod004-basic_formats/all/all_js.rb,
tmpsets/set/mod005-pointer/self/script_mods.rb,
tmpsets/set/mod011-machines/abstract/script.rb,
tmpsets/set/mod012-settings/right/structure.rb,
tmpsets/set/mod013-email/right/html_message.rb,
tmpsets/set/mod002-core/all/location_history.rb,
tmpsets/set/mod002-core/all/name_validations.rb,
tmpsets/set/mod004-basic_formats/all/all_css.rb,
tmpsets/set/mod004-basic_formats/all/all_csv.rb,
tmpsets/set/mod011-machines/abstract/machine.rb,
tmpsets/set/mod011-machines/self/script_slot.rb,
tmpsets/set/mod011-machines/self/style_cards.rb,
tmpsets/set/mod011-machines/type/java_script.rb,
tmpsets/set/mod012-settings/self/accountable.rb,
tmpsets/set/mod013-email/right/follow_fields.rb,
tmpsets/set/mod013-email/type/email_template.rb,
tmpsets/set/mod016-standard/all/list_changes.rb,
tmpsets/set/mod016-standard/right/discussion.rb,
tmpsets/set/mod016-standard/type/layout_type.rb,
tmpsets/set/mod016-standard/type/search_type.rb,
tmpsets/set/mod002-core/all/update_read_rules.rb,
tmpsets/set/mod006-ace_editor/self/script_ace.rb,
tmpsets/set/mod013-email/self/follow_defaults.rb,
tmpsets/set/mod015-carrierwave/all/file_utils.rb,
tmpsets/set/mod017-account/self/account_links.rb,
tmpsets/set/mod018-bootstrap/self/script_mods.rb,
tmpsets/set/mod002-core/all/tracked_attributes.rb,
tmpsets/set/mod003-history/all/content_history.rb,
tmpsets/set/mod005-pointer/abstract/01_pointer.rb,
tmpsets/set/mod005-pointer/self/script_editors.rb,
tmpsets/set/mod009-solid_cache/all/solid_cache.rb,
tmpsets/set/mod010-basic_types/type/plain_text.rb,
tmpsets/set/mod011-machines/all/reset_machines.rb,
tmpsets/set/mod011-machines/self/script_jquery.rb,
tmpsets/set/mod011-machines/type/coffee_script.rb,
tmpsets/set/mod012-settings/self/follow_fields.rb,
tmpsets/set/mod012-settings/self/options_label.rb,
tmpsets/set/mod016-standard/all/rich_html/form.rb,
tmpsets/set/mod016-standard/all/rich_html/menu.rb,
tmpsets/set/mod016-standard/right/when_created.rb,
tmpsets/set/mod016-standard/rstar/rules_editor.rb,
tmpsets/set/mod018-bootstrap/self/bootstrap_js.rb,
tmpsets/set/mod018-bootstrap/self/smartmenu_js.rb,
tmpsets/set/mod011-machines/right/machine_cache.rb,
tmpsets/set/mod011-machines/right/machine_input.rb,
tmpsets/set/mod012-settings/abstract/permission.rb,
tmpsets/set/mod016-standard/all/rich_html/modal.rb,
tmpsets/set/mod018-bootstrap/all/bootstrap/form.rb,
tmpsets/set/mod018-bootstrap/all/bootstrap/tabs.rb,
tmpsets/set/mod018-bootstrap/all/rich_bootstrap.rb,
tmpsets/set/mod018-bootstrap/self/smartmenu_css.rb,
tmpsets/set/mod005-pointer/abstract/code_pointer.rb,
tmpsets/set/mod009-solid_cache/right/solid_cache.rb,
tmpsets/set/mod011-machines/right/machine_output.rb,
tmpsets/set/mod012-settings/self/recent_settings.rb,
tmpsets/set/mod016-standard/all/rich_html/header.rb,
tmpsets/set/mod018-bootstrap/all/bootstrap/table.rb,
tmpsets/set/mod006-ace_editor/abstract/ace_editor.rb,
tmpsets/set/mod011-machines/self/script_card_menu.rb,
tmpsets/set/mod016-standard/all/rich_html/content.rb,
tmpsets/set/mod016-standard/all/rich_html/editing.rb,
tmpsets/set/mod016-standard/all/rich_html/toolbar.rb,
tmpsets/set/mod016-standard/all/rich_html/wrapper.rb,
tmpsets/set/mod018-bootstrap/all/bootstrap/helper.rb,
tmpsets/set/mod018-bootstrap/self/bootstrap_cards.rb,
tmpsets/set/mod011-machines/abstract/machine_input.rb,
tmpsets/set/mod012-settings/self/default_html_view.rb,
tmpsets/set/mod012-settings/self/table_of_contents.rb,
tmpsets/set/mod015-carrierwave/abstract/attachment.rb,
tmpsets/set/mod016-standard/right/when_last_edited.rb,
tmpsets/set/mod018-bootstrap/all/bootstrap/wrapper.rb,
tmpsets/set/mod005-pointer/abstract/01_pointer/edit.rb,
tmpsets/set/mod009-solid_cache/abstract/solid_cache.rb,
tmpsets/set/mod018-bootstrap/self/bootswatch_shared.rb,
tmpsets/set/mod006-ace_editor/self/script_ace_config.rb,
tmpsets/set/mod013-email/type_plus_right/user/follow.rb,
tmpsets/set/mod005-pointer/self/script_pointer_config.rb,
tmpsets/set/mod011-machines/self/script_jquery_helper.rb,
tmpsets/set/mod004-basic_formats/self/01_head/javascript.rb,
tmpsets/set/mod015-carrierwave/abstract/attachment/paths.rb,
tmpsets/set/mod011-machines/self/script_html5shiv_printshiv.rb,
tmpsets/set/mod011-machines/self/style_bootstrap_compatible.rb,
tmpsets/set/mod011-machines/self/style_jquery_ui_smoothness.rb,
tmpsets/set/mod007-prosemirror_editor/self/script_prosemirror.rb,
tmpsets/set/mod015-carrierwave/abstract/attachment/storage_type.rb,
tmpsets/set/mod015-carrierwave/abstract/attachment/upload_cache.rb,
tmpsets/set/mod007-prosemirror_editor/abstract/prosemirror_editor.rb,
tmpsets/set/mod007-prosemirror_editor/self/script_prosemirror_config.rb

Overview

TODO: work in progress

Defined Under Namespace

Modules: Auth, Env, FollowOption, Generators, Machine, Mark, Mod, Model, Query, Set, Setting, Version Classes: Act, ActManager, Action, Cache, Change, Codename, Content, Error, FileCardCreator, FilterQuery, FollowerStash, Format, Layout, Mailer, Migration, Name, Reference, Subcards, View, Virtual

Constant Summary

Constants included from Mark

Mark::CODENAME_MARK_RE, Mark::ID_MARK_RE

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Mark

bad_mark, cardish, id_from_mark, id_from_string, id_or_name, name_from_mark

Instance Attribute Details

#follower_stashObject

Returns the value of attribute follower_stash.



160
161
162
# File 'lib/card.rb', line 160

def follower_stash
  @follower_stash
end

Class Method Details

.cacheObject



5
6
7
# File 'lib/card/cache.rb', line 5

def cache
  Card::Cache[Card]
end

.configObject



3
4
5
# File 'lib/card/mod/dirs.rb', line 3

def config
  Cardio.config
end

.const_missing(const) ⇒ Integer

If a card has the codename example, then Card::ExampleID should return the id for that card. This method makes that help.

Parameters:

  • const (Const)

Returns:

  • (Integer)

Raises:

  • error if codename is missing



144
145
146
147
148
149
150
# File 'lib/card/codename.rb', line 144

def self.const_missing const
  return super unless const.to_s =~ /^([A-Z]\S*)ID$/

  code = Regexp.last_match(1).underscore
  code_id = Card::Codename.id!(code)
  const_set const, code_id
end

.define_dirty_methods(field) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/card/dirty.rb', line 2

def self.define_dirty_methods field
  define_method "#{field}_before_act" do
    attribute_before_act field
  end

  define_method "#{field}_is_changing?" do
    attribute_is_changing? field
  end
end

.pathsObject



7
8
9
# File 'lib/card/mod/dirs.rb', line 7

def paths
  Cardio.paths
end

.serializable_attr_accessor(*args) ⇒ Object

attributes that ActiveJob can handle



129
130
131
132
# File 'lib/card.rb', line 129

def self.serializable_attr_accessor *args
  self.serializable_attributes = args
  attr_accessor(*args)
end

Instance Method Details

#attribute_before_act(attr) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/card/dirty.rb', line 16

def attribute_before_act attr
  if saved_change_to_attribute? attr
    attribute_before_last_save attr
  elsif will_save_change_to_attribute? attr
    mutations_from_database.changed_values[attr]
  elsif not_in_callback?
    attribute_was attr
  else
    _read_attribute attr
  end
end

#attribute_is_changing?(attr) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
37
38
39
# File 'lib/card/dirty.rb', line 33

def attribute_is_changing? attr
  if not_in_callback?
    attribute_changed? attr
  else
    saved_change_to_attribute?(attr) || will_save_change_to_attribute?(attr)
  end
end

#clean_after_stage_failObject



11
12
13
14
15
# File 'lib/card/act_manager/stage_director.rb', line 11

def clean_after_stage_fail
  @action = nil
  expire_pieces
  subcards.each(&:expire_pieces)
end

#deserialize_for_active_job!(attr) ⇒ Object



50
51
52
53
54
55
# File 'lib/card/set/event/delayed_event.rb', line 50

def deserialize_for_active_job! attr
  attr.each do |attname, val|
    instance_variable_set("@#{attname}", val)
  end
  include_set_modules
end

#deserialize_hash_value(value) ⇒ Object



96
97
98
99
100
# File 'lib/card/set/event/delayed_event.rb', line 96

def deserialize_hash_value value
  value.each_with_object({}) do |(k, v), h|
    h[k] = deserialize_value v[:value], v[:type]
  end
end

#deserialize_value(val, type) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/card/set/event/delayed_event.rb', line 83

def deserialize_value val, type
  case type
  when "symbol"
    val.to_sym
  when "time"
    DateTime.parse val
  when "hash"
    deserialize_hash_value val
  else
    val
  end
end

#log_event_call(event) ⇒ Object



111
112
113
114
115
# File 'lib/card/set/event.rb', line 111

def log_event_call event
  Rails.logger.debug "#{name}: #{event}"
  # puts "#{name}: #{event}"
  # puts "#{Card::ActManager.to_s}".green
end

#not_in_callback?Boolean

Returns:

  • (Boolean)


28
29
30
31
# File 'lib/card/dirty.rb', line 28

def not_in_callback?
  # or in integrate_with_delay stage
  mutations_before_last_save.equal?(mutations_from_database)
end

#restore_changes_informationObject



2
3
4
5
6
7
8
9
# File 'lib/card/act_manager/stage_director.rb', line 2

def restore_changes_information
  # restores changes for integration phase
  # (rails cleared them in an after_create/after_update hook which is
  #  executed before the integration phase)
  return unless saved_changes.present?

  @mutations_from_database = mutations_before_last_save
end

#serializable_attributesObject



156
157
158
# File 'lib/card.rb', line 156

def serializable_attributes
  self.class.serializable_attributes + set_specific.keys
end

#serialize_for_active_jobObject



57
58
59
60
61
# File 'lib/card/set/event/delayed_event.rb', line 57

def serialize_for_active_job
  serializable_attributes.each_with_object({}) do |name, hash|
    hash[name] = instance_variable_get("@#{name}")
  end
end

#serialize_hash_value(value) ⇒ Object



79
80
81
# File 'lib/card/set/event/delayed_event.rb', line 79

def serialize_hash_value value
  value.each_with_object({}) { |(k, v), h| h[k] = serialize_value(v) }
end

#serialize_value(value) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/card/set/event/delayed_event.rb', line 63

def serialize_value value
  # ActiveJob doesn't accept symbols and Time as arguments
  case value
  when Symbol
    { value: value.to_s, type: "symbol" }
  when Time
    { value: value.to_s, type: "time" }
  when Hash
    { value: serialize_hash_value(value), type: "hash" }
  when ActionController::Parameters
    serialize_value value.to_unsafe_h
  else
    { value: value }
  end
end