card 1.20.0 → 1.20.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/card.gemspec +1 -1
- data/lib/card.rb +7 -3
- data/lib/card/act_manager/stage_director.rb +22 -10
- data/lib/card/cache/persistent.rb +15 -9
- data/lib/card/format/nest.rb +12 -5
- data/lib/card/format/nest/fetch.rb +2 -1
- data/lib/card/format/render.rb +5 -2
- data/lib/card/set/event.rb +7 -1
- data/lib/card/subcards.rb +3 -3
- data/lib/card/view/cache.rb +1 -1
- data/lib/card/view/fetch.rb +17 -5
- data/lib/card/view/options.rb +52 -26
- data/lib/cardio.rb +2 -1
- data/mod/account/spec/set/right/account_spec.rb +17 -3
- data/mod/admin/set/self/admin.rb +0 -2
- data/mod/admin/spec/set/self/admin_spec.rb +14 -11
- data/mod/bootstrap/set/all/bootstrap/helper.rb +27 -29
- data/mod/carrierwave/set/type/file.rb +1 -1
- data/mod/carrierwave/set/type/image.rb +18 -6
- data/mod/core/set/all/collection.rb +33 -7
- data/mod/core/set/all/fetch.rb +16 -3
- data/mod/core/set/all/permissions.rb +6 -12
- data/mod/core/set/all/trash.rb +3 -1
- data/mod/core/spec/set/all/collection_spec.rb +9 -8
- data/mod/email/set/all/notify.rb +27 -17
- data/mod/email/set/right/follow.rb +49 -36
- data/mod/email/set/type/email_template.rb +25 -69
- data/mod/email/set/type/email_template/email_config.rb +63 -0
- data/mod/email/set/type_plus_right/user/follow.rb +3 -3
- data/mod/machines/lib/stylesheets/style_cards.scss +292 -0
- data/mod/pointer/set/abstract/01_pointer.rb +8 -8
- data/mod/pointer/set/abstract/01_pointer/edit.rb +6 -2
- data/mod/prosemirror_editor/lib/javascript/script_prosemirror.js +12283 -11605
- data/mod/prosemirror_editor/lib/javascript/script_prosemirror_config.js.coffee +1 -1
- data/mod/standard/set/abstract/01_search_params.rb +1 -1
- data/mod/standard/set/abstract/search/paging.rb +4 -4
- data/mod/standard/set/all/comment.rb +67 -47
- data/mod/standard/set/all/links.rb +2 -2
- data/mod/standard/set/all/rich_html/content.rb +1 -1
- data/mod/standard/set/all/rich_html/editing.rb +3 -2
- data/mod/standard/set/all/rich_html/form.rb +21 -12
- data/mod/standard/set/all/rich_html/header.rb +9 -0
- data/mod/standard/set/all/rich_html/menu.rb +16 -12
- data/mod/standard/set/all/rich_html/toolbar.rb +140 -130
- data/mod/standard/set/all/rich_html/wrapper.rb +11 -1
- data/mod/standard/set/rstar/rules_editor.rb +2 -34
- data/mod/standard/set/self/search.rb +1 -1
- data/mod/standard/set/type/set.rb +4 -4
- data/mod/standard/spec/set/type/email_template/email_config_spec.rb +218 -0
- data/mod/standard/spec/set/type/email_template_spec.rb +3 -185
- data/spec/lib/card/cache_spec.rb +0 -1
- data/spec/lib/card/format/render_spec.rb +19 -0
- data/spec/lib/card/stage_director_spec.rb +1 -1
- data/tmpsets/set/mod001-core/all/actify.rb +5 -6
- data/tmpsets/set/mod001-core/all/fetch.rb +14 -12
- data/tmpsets/set/mod001-core/all/name.rb +1 -1
- data/tmpsets/set/mod001-core/all/permissions.rb +12 -22
- data/tmpsets/set/mod001-core/all/tracked_attributes.rb +76 -0
- data/tmpsets/set/mod001-core/all/utils.rb +40 -3
- data/tmpsets/set/mod002-history/all/history.rb +1 -2
- data/tmpsets/set/mod008-solid_cache/abstract/solid_cache.rb +1 -1
- data/tmpsets/set/mod013-carrierwave/abstract/attachment.rb +282 -0
- data/tmpsets/set/mod013-carrierwave/type/file.rb +155 -0
- data/tmpsets/set/mod013-carrierwave/type/image.rb +96 -0
- data/tmpsets/set/mod014-admin/self/admin.rb +113 -0
- data/tmpsets/set/mod014-admin/self/admin_info.rb +110 -0
- data/tmpsets/set/mod014-admin/self/version.rb +15 -0
- data/tmpsets/set/mod015-developer/all/event_viz.rb +59 -0
- data/tmpsets/set/mod015-developer/all/view_viz.rb +30 -0
- data/tmpsets/set/mod015-developer/right/debug.rb +96 -0
- metadata +15 -2
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class Card; module Set; class Self; module Version; extend Card::Set
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/admin/set/self/version.rb ~~
|
4
|
+
# -*- encoding : utf-8 -*-
|
5
|
+
require_dependency "card/version"
|
6
|
+
|
7
|
+
view :raw do |_args|
|
8
|
+
Card::Version.release
|
9
|
+
end
|
10
|
+
|
11
|
+
view :core, :raw
|
12
|
+
|
13
|
+
|
14
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/admin/set/self/version.rb ~~
|
15
|
+
end;end;end;end;
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class Card; module Set; class All; module EventViz; extend Card::Set
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/developer/set/all/event_viz.rb ~~
|
4
|
+
require_dependency 'active_support/callbacks_ext'
|
5
|
+
|
6
|
+
# the events method is a developer's tool for visualizing the event order
|
7
|
+
# for a given card.
|
8
|
+
# For example, from a console you might run
|
9
|
+
#
|
10
|
+
# puts mycard.events :update
|
11
|
+
#
|
12
|
+
# to see the order of events that will be executed on mycard.
|
13
|
+
# The indention and arrows (^v) indicate event dependencies.
|
14
|
+
#
|
15
|
+
# Note: as of yet, the functionality is a bit rough. It does not display events
|
16
|
+
# that are called directly from within other events,
|
17
|
+
# and certain event requirements (like the presence of a 'current_act') may
|
18
|
+
# prevent events from showing up in the tree.
|
19
|
+
def events action
|
20
|
+
@action = action
|
21
|
+
events = Card::Stage::STAGES.map { |stage| events_tree("#{stage}_stage") }
|
22
|
+
@action = nil
|
23
|
+
puts_events events
|
24
|
+
end
|
25
|
+
|
26
|
+
# private
|
27
|
+
|
28
|
+
def puts_events events, prefix="", depth=0
|
29
|
+
r = ""
|
30
|
+
depth += 1
|
31
|
+
events.each do |e|
|
32
|
+
space = " " * (depth * 2)
|
33
|
+
|
34
|
+
# FIXME: this is not right. before and around callbacks are processed in
|
35
|
+
# declaration order regardless of kind. not all befores then all arounds
|
36
|
+
e[:before] && r += puts_events(e[:before], space + "v ", depth)
|
37
|
+
e[:around] && r += puts_events(e[:around], space + "vv ", depth)
|
38
|
+
r += "#{prefix}#{e[:name]}\n"
|
39
|
+
e[:after] && r += puts_events(e[:after].reverse, space + "^ ", depth)
|
40
|
+
end
|
41
|
+
r
|
42
|
+
end
|
43
|
+
|
44
|
+
def events_tree filt
|
45
|
+
hash = { name: filt }
|
46
|
+
if respond_to? "_#{filt}_callbacks"
|
47
|
+
send("_#{filt}_callbacks").each do |callback|
|
48
|
+
next unless callback.applies? self
|
49
|
+
hash[callback.kind] ||= []
|
50
|
+
hash[callback.kind] << events_tree(callback.filter)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
hash
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/developer/set/all/event_viz.rb ~~
|
59
|
+
end;end;end;end;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class Card; module Set; class All; module ViewViz; extend Card::Set
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/developer/set/all/view_viz.rb ~~
|
4
|
+
format :html do
|
5
|
+
view :views_by_format do
|
6
|
+
format_views =
|
7
|
+
self.class.ancestors.each_with_object({}) do |format_class, hash|
|
8
|
+
views =
|
9
|
+
format_class.instance_methods.map do |method|
|
10
|
+
next unless method.to_s =~ /^_view_(.+)$/
|
11
|
+
Regexp.last_match(1)
|
12
|
+
end.compact
|
13
|
+
next unless views.present?
|
14
|
+
format_class.name =~ /^Card(::Set)?::(.+?)$/ #::(\w+Format)
|
15
|
+
hash[Regexp.last_match(2)] = views
|
16
|
+
end
|
17
|
+
accordion_group format_views
|
18
|
+
end
|
19
|
+
|
20
|
+
view :views_by_name do
|
21
|
+
views = methods.map do |method|
|
22
|
+
Regexp.last_match(1) if method.to_s =~ /^_view_(.+)$/
|
23
|
+
end.compact.sort
|
24
|
+
list_group views
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/developer/set/all/view_viz.rb ~~
|
30
|
+
end;end;end;end;
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class Card; module Set; class Right; module Debug; extend Card::Set
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/developer/set/right/debug.rb ~~
|
4
|
+
def virtual?
|
5
|
+
true
|
6
|
+
end
|
7
|
+
|
8
|
+
format :html do
|
9
|
+
view :core do |_args|
|
10
|
+
subject = card.left
|
11
|
+
|
12
|
+
output [
|
13
|
+
["Sets",
|
14
|
+
static_tabs("set modules" => set_modules_accordion(subject),
|
15
|
+
"all modules" => singleton_modules_list(subject),
|
16
|
+
"patterns" => set_patterns_breadcrumb(subject))],
|
17
|
+
["Views",
|
18
|
+
static_tabs("by format" => subformat(subject)._render_views_by_format,
|
19
|
+
"by name" => subformat(subject)._render_views_by_name)],
|
20
|
+
["Events",
|
21
|
+
static_tabs(create: "<pre>#{subject.events(:create)}</pre>",
|
22
|
+
update: "<pre>#{subject.events(:update)}</pre>",
|
23
|
+
delete: "<pre>#{subject.events(:delete)}</pre>")],
|
24
|
+
["Cache/DB Comparison", cache_comparison_table(subject)]
|
25
|
+
].map { |item| section(*item) }
|
26
|
+
end
|
27
|
+
|
28
|
+
# rubocop:disable AccessorMethodName
|
29
|
+
def set_modules_accordion subject
|
30
|
+
sets = subject.set_modules.each_with_object({}) do |sm, hash|
|
31
|
+
ans = sm.ancestors
|
32
|
+
ans.shift
|
33
|
+
hash[sm.to_s] = ans
|
34
|
+
end
|
35
|
+
accordion_group sets
|
36
|
+
end
|
37
|
+
|
38
|
+
def set_patterns_breadcrumb subject
|
39
|
+
links = subject.patterns.reverse.map { |pattern| card_link pattern.to_s }
|
40
|
+
breadcrumb(links)
|
41
|
+
end
|
42
|
+
# rubocop:enable AccessorMethodName
|
43
|
+
|
44
|
+
def singleton_modules_list subject
|
45
|
+
all_mods = subject.singleton_class.ancestors.map(&:to_s)
|
46
|
+
all_mods.shift
|
47
|
+
list_group all_mods
|
48
|
+
end
|
49
|
+
|
50
|
+
def cache_comparison_table subject
|
51
|
+
cache_card = Card.fetch(subject.key)
|
52
|
+
db_card = Card.find_by_key(subject.key)
|
53
|
+
return unless cache_card && db_card
|
54
|
+
table(
|
55
|
+
[:name, :updated_at, :updater_id, :content, :inspect].map do |field|
|
56
|
+
[field.to_s,
|
57
|
+
h(cache_card.send(field)),
|
58
|
+
h(db_card.send(field))]
|
59
|
+
end,
|
60
|
+
header: ["Field", "Cache Val", "Database Val"]
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
def section title, content
|
65
|
+
%(
|
66
|
+
<h2>#{title}</h2>
|
67
|
+
#{content}
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
def class_locations klass
|
72
|
+
methods = defined_methods(klass)
|
73
|
+
file_groups = methods.group_by { |sl| sl[0] }
|
74
|
+
file_counts = file_groups.map do |file, sls|
|
75
|
+
lines = sls.map { |sl| sl[1] }
|
76
|
+
count = lines.size
|
77
|
+
line = lines.min
|
78
|
+
{ file: file, count: count, line: line }
|
79
|
+
end
|
80
|
+
file_counts.sort_by! { |fc| fc[:count] }
|
81
|
+
file_counts.map { |fc| [fc[:file], fc[:line]] }
|
82
|
+
end
|
83
|
+
|
84
|
+
def defined_methods klass
|
85
|
+
methods =
|
86
|
+
klass.methods(false).map { |m| klass.method(m) } +
|
87
|
+
klass.instance_methods(false).map { |m| klass.instance_method(m) }
|
88
|
+
methods.map!(&:source_location)
|
89
|
+
methods.compact!
|
90
|
+
methods
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/developer/set/right/debug.rb ~~
|
96
|
+
end;end;end;end;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: card
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.20.
|
4
|
+
version: 1.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2017-01-
|
14
|
+
date: 2017-01-26 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: smartname
|
@@ -892,6 +892,7 @@ files:
|
|
892
892
|
- mod/email/set/self/follow_defaults.rb
|
893
893
|
- mod/email/set/self/never.rb
|
894
894
|
- mod/email/set/type/email_template.rb
|
895
|
+
- mod/email/set/type/email_template/email_config.rb
|
895
896
|
- mod/email/set/type_plus_right/user/follow.rb
|
896
897
|
- mod/email/spec/set/all/follow_spec.rb
|
897
898
|
- mod/email/spec/set/all/notify_spec.rb
|
@@ -1129,6 +1130,7 @@ files:
|
|
1129
1130
|
- mod/standard/spec/set/type/basic_spec.rb
|
1130
1131
|
- mod/standard/spec/set/type/cardtype_spec.rb
|
1131
1132
|
- mod/standard/spec/set/type/date_spec.rb
|
1133
|
+
- mod/standard/spec/set/type/email_template/email_config_spec.rb
|
1132
1134
|
- mod/standard/spec/set/type/email_template_spec.rb
|
1133
1135
|
- mod/standard/spec/set/type/html_spec.rb
|
1134
1136
|
- mod/standard/spec/set/type/layout_type_spec.rb
|
@@ -1155,6 +1157,7 @@ files:
|
|
1155
1157
|
- spec/lib/card/content_spec.rb
|
1156
1158
|
- spec/lib/card/diff_spec.rb
|
1157
1159
|
- spec/lib/card/format/nest_spec.rb
|
1160
|
+
- spec/lib/card/format/render_spec.rb
|
1158
1161
|
- spec/lib/card/format_spec.rb
|
1159
1162
|
- spec/lib/card/i18n_spec.rb
|
1160
1163
|
- spec/lib/card/loader/Modfile
|
@@ -1323,6 +1326,15 @@ files:
|
|
1323
1326
|
- tmpsets/set/mod012-email/self/never.rb
|
1324
1327
|
- tmpsets/set/mod012-email/type/email_template.rb
|
1325
1328
|
- tmpsets/set/mod012-email/type_plus_right/user/follow.rb
|
1329
|
+
- tmpsets/set/mod013-carrierwave/abstract/attachment.rb
|
1330
|
+
- tmpsets/set/mod013-carrierwave/type/file.rb
|
1331
|
+
- tmpsets/set/mod013-carrierwave/type/image.rb
|
1332
|
+
- tmpsets/set/mod014-admin/self/admin.rb
|
1333
|
+
- tmpsets/set/mod014-admin/self/admin_info.rb
|
1334
|
+
- tmpsets/set/mod014-admin/self/version.rb
|
1335
|
+
- tmpsets/set/mod015-developer/all/event_viz.rb
|
1336
|
+
- tmpsets/set/mod015-developer/all/view_viz.rb
|
1337
|
+
- tmpsets/set/mod015-developer/right/debug.rb
|
1326
1338
|
- tmpsets/set/mod016-standard/all/comment.rb
|
1327
1339
|
- tmpsets/set/mod016-standard/all/error.rb
|
1328
1340
|
- tmpsets/set/mod016-standard/all/links.rb
|
@@ -1426,6 +1438,7 @@ test_files:
|
|
1426
1438
|
- spec/lib/card/content_spec.rb
|
1427
1439
|
- spec/lib/card/diff_spec.rb
|
1428
1440
|
- spec/lib/card/format/nest_spec.rb
|
1441
|
+
- spec/lib/card/format/render_spec.rb
|
1429
1442
|
- spec/lib/card/format_spec.rb
|
1430
1443
|
- spec/lib/card/i18n_spec.rb
|
1431
1444
|
- spec/lib/card/loader/Modfile
|