Module: Card::Set::Right::Structure

Extended by:
Card::Set
Defined in:
platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb

Overview

Set: All “+Structure” cards

Defined Under Namespace

Modules: HtmlFormat, RssFormat

Constant Summary

Constants included from Helpers

Helpers::SET_PATTERN_TEST_REGEXP

Constants included from Event::Api

Event::Api::OPTIONS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Card::Set

reset

Methods included from I18nScope

#mod_name, #scope

Methods included from Card::Set::Registrar

#extended, #finalize_load, #process_base_modules, #register_set

Methods included from Helpers

#format_module, #format_modules, #method_missing, #modules, #pattern_code, #respond_to_missing?, #set_name_parts, #shortname, #underscored_name

Methods included from AdvancedApi

#assign_type, #attachment, #define_set_from_error, #ensure_set, #setting_opts, #stage_method

Methods included from Format

#before, #format, layout_method_name, #view, view_method_name, view_setting_method_name, wrapper_method_name

Methods included from Inheritance

#include_set, #include_set_formats

Methods included from Trait

#card_accessor, #card_reader, #card_writer, #require_field

Methods included from Event::Api

#event

Class Method Details

.source_locationObject



7
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 7

def self.source_location; "/Users/ethan/dev/decko/gem/mod/content/set/right/structure.rb"; end

Instance Method Details

#event: reset_cache_to_use_new_structureObject



45
46
47
48
49
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 45

event :reset_cache_to_use_new_structure,
      before: :update_structurees_references do
  Card::Cache.reset_shared
  Card::Cache.reset_temp
end

#event: update_structurees_referencesObject



32
33
34
35
36
37
38
39
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 32

event :update_structurees_references, :integrate,
      when: :update_structurees_references? do
  return unless (query = structuree_query)

  Auth.as_bot do
    query.run.each(&:update_references_out)
  end
end

#event: update_structurees_typeObject



51
52
53
54
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 51

event :update_structurees_type, :finalize,
      changed: :type_id, when: proc { |c| c.assigns_type? } do
  update_structurees type_id: type_id
end

#item_names(args = {}) ⇒ Object



10
11
12
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 10

def item_names args={}
  item_strings(args).compact.map(&:to_name)
end

#structuree_namesObject



56
57
58
59
60
61
62
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 56

def structuree_names
  return [] unless (query = structuree_query(return: :name))

  Auth.as_bot do
    query.run
  end
end

#structuree_query(args = {}) ⇒ Object



78
79
80
81
82
83
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 78

def structuree_query args={}
  set_card = trunk
  return unless set_card.type_id == SetID

  set_card.fetch_query args
end

#update_structurees(args) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 64

def update_structurees args
  # NOTE: that this is not smart about overriding templating rules
  # for example, if someone were to change the type of a
  # +*right+*structure rule that was overridden
  # by a +*type plus right+*structure rule, the override would not be respected.
  return unless (query = structuree_query(return: :id))

  Auth.as_bot do
    query.run.each_slice(100) do |id_batch|
      Card.where(id: id_batch).update_all args
    end
  end
end

#update_structurees_references?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'platypus/tmp/set/gem-defaults/mod003-content/right/structure.rb', line 41

def update_structurees_references?
  db_content_changed? || action == :delete
end