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

Extended by:
Card::Set
Defined in:
card/tmpsets/set/mod007-card-mod-content/right/structure.rb,
card/tmpsets/set/mod006-card-mod-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_modules

Methods included from I18nScope

#mod_name, #scope

Methods included from Loader

#clean_empty_module_from_hash, #clean_empty_modules, #extended, #process_base_modules, #register_set

Methods included from Helpers

#method_missing, #num_set_parts, #pattern_code, #respond_to_missing?, #set_name_parts, #shortname, #underscore

Methods included from AdvancedApi

#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 Basket

#abstract_basket, #add_to_basket, #basket, #unshift_basket

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 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 7

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

Instance Method Details

#event: reset_cache_to_use_new_structureObject



41
42
43
44
45
# File 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 41

event :reset_cache_to_use_new_structure,
      before: :update_structurees_references do
  Card::Cache.reset_hard
  Card::Cache.reset_soft
end

#event: update_structurees_referencesObject



28
29
30
31
32
33
34
35
# File 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 28

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



47
48
49
50
# File 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 47

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 'card/tmpsets/set/mod006-card-mod-content/right/structure.rb', line 10

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

#structuree_namesObject



52
53
54
55
56
57
58
# File 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 52

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

  Auth.as_bot do
    query.run
  end
end

#structuree_query(args = {}) ⇒ Object



74
75
76
77
78
79
# File 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 74

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

  set_card.fetch_query args
end

#update_structurees(args) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 60

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)


37
38
39
# File 'card/tmpsets/set/mod007-card-mod-content/right/structure.rb', line 37

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