Module: Card::Set::Right::Debug::HtmlFormat

Extended by:
AbstractFormat
Defined in:
card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb,
card/tmpsets/set/mod040-card-mod-monkey/right/debug.rb

Instance Method Summary collapse

Instance Method Details

#cache_comparison_table(subject) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 53

def cache_comparison_table subject
  cache_card = Card.fetch(subject.key)
  db_card    = Card.find_by_key(subject.key)
  return unless cache_card && db_card
  table(
    %i[name updated_at updater_id content inspect].map do |field|
      [field.to_s,
       h(cache_card.send(field)),
       h(db_card.send(field))]
    end,
    header: ["Field", "Cache Val", "Database Val"]
  )
end

#class_locations(klass) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 74

def class_locations klass
  methods = defined_methods(klass)
  file_groups = methods.group_by { |sl| sl[0] }
  file_counts = file_groups.map do |file, sls|
    lines = sls.map { |sl| sl[1] }
    count = lines.size
    line = lines.min
    { file: file, count: count, line: line }
  end
  file_counts.sort_by! { |fc| fc[:count] }
  file_counts.map { |fc| [fc[:file], fc[:line]] }
end

#core_section_config(subject) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 19

def core_section_config subject
  [["Sets", tabs("set modules" => set_modules_accordion(subject),
                 "all modules" => singleton_modules_list(subject),
                 "patterns"    => set_patterns_breadcrumb(subject))],
   ["Views", tabs("by format" => subformat(subject)._render_views_by_format,
                  "by name" => subformat(subject)._render_views_by_name)],
   ["Events", tabs(create: "<pre>#{subject.events(:create)}</pre>",
                   update: "<pre>#{subject.events(:update)}</pre>",
                   delete: "<pre>#{subject.events(:delete)}</pre>")],
   ["Cache/DB Comparison", cache_comparison_table(subject)]]
end

#defined_methods(klass) ⇒ Object



87
88
89
90
91
92
93
94
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 87

def defined_methods klass
  methods =
    klass.methods(false).map { |m| klass.method(m) } +
    klass.instance_methods(false).map { |m| klass.instance_method(m) }
  methods.map!(&:source_location)
  methods.compact!
  methods
end

#section(title, content) ⇒ Object



67
68
69
70
71
72
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 67

def section title, content
  %(
    <h2>#{title}</h2>
    #{content}
  )
end

#set_modules_accordion(subject) ⇒ Object

rubocop:disable AccessorMethodName



32
33
34
35
36
37
38
39
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 32

def set_modules_accordion subject
  sets = subject.set_modules.each_with_object({}) do |sm, hash|
    ans = sm.ancestors
    ans.shift
    hash[sm.to_s] = ans
  end
  accordion_group sets
end

#set_patterns_breadcrumb(subject) ⇒ Object



41
42
43
44
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 41

def set_patterns_breadcrumb subject
  links = subject.patterns.reverse.map { |pattern| link_to_card pattern.to_s }
  breadcrumb links
end

#singleton_modules_list(subject) ⇒ Object

rubocop:enable AccessorMethodName



47
48
49
50
51
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 47

def singleton_modules_list subject
  all_mods = subject.singleton_class.ancestors.map(&:to_s)
  all_mods.shift
  list_group all_mods
end

#view: coreObject



13
14
15
16
17
# File 'card/tmpsets/set/mod039-card-mod-monkey/right/debug.rb', line 13

view :core do
  core_section_config(card.left).map do |item|
    section(*item)
  end
end