wagn 1.13.0.pre1 → 1.13.0.pre2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/app/controllers/card_controller.rb +3 -3
- data/db/migrate_cards/20140307231621_user_data_to_cards.rb +5 -1
- data/lib/card.rb +5 -7
- data/lib/card/chunk.rb +1 -0
- data/lib/card/codename.rb +48 -31
- data/lib/card/env.rb +0 -1
- data/lib/card/exceptions.rb +3 -3
- data/lib/card/format.rb +89 -166
- data/lib/card/generators/set/USAGE +1 -1
- data/lib/card/loader.rb +1 -1
- data/lib/card/set.rb +196 -112
- data/lib/card/set_pattern.rb +37 -71
- data/lib/wagn/cache.rb +8 -7
- data/lib/wagn/commands.rb +1 -1
- data/lib/wagn/config/environments/development.rb +1 -1
- data/lib/wagn/config/initializers/paperclip.rb +1 -0
- data/lib/wagn/generators/wagn/templates/Gemfile +59 -55
- data/lib/wagn/location.rb +2 -2
- data/mods/core/formats/html_format.rb +2 -6
- data/mods/core/formats/text_format.rb +1 -1
- data/mods/core/set_patterns/01_all.rb +0 -5
- data/mods/core/set_patterns/02_all_plus.rb +1 -3
- data/mods/core/set_patterns/07_type_plus_right.rb +0 -1
- data/mods/core/sets/all/active_card.rb +1 -1
- data/mods/core/sets/all/name.rb +3 -2
- data/mods/core/sets/all/pattern.rb +9 -23
- data/mods/core/sets/all/phases.rb +27 -13
- data/mods/core/sets/all/rules.rb +3 -3
- data/mods/core/sets/all/templating.rb +5 -2
- data/mods/core/sets/all/tracked_attributes.rb +2 -1
- data/mods/core/sets/right/structure.rb +13 -0
- data/mods/{standard → core}/sets/type/plain_text.rb +0 -0
- data/mods/standard/formats/email_html_format.rb +1 -1
- data/mods/standard/lib/card/machine.rb +16 -12
- data/mods/standard/lib/card/machine_input.rb +1 -1
- data/mods/standard/sets/all/attach.rb +1 -1
- data/mods/standard/sets/all/base.rb +92 -94
- data/mods/standard/sets/all/follow.rb +1 -1
- data/mods/standard/sets/all/rich_html.rb +5 -3
- data/mods/standard/sets/all/rss.rb +12 -5
- data/mods/standard/sets/right/account.rb +1 -1
- data/mods/standard/sets/right/add_help.rb +3 -1
- data/mods/standard/sets/right/comment.rb +92 -3
- data/mods/standard/sets/right/create.rb +2 -87
- data/mods/standard/sets/right/default.rb +3 -2
- data/mods/standard/sets/right/delete.rb +2 -5
- data/mods/standard/sets/right/help.rb +3 -1
- data/mods/standard/sets/right/machine_output.rb +9 -7
- data/mods/standard/sets/right/read.rb +2 -5
- data/mods/standard/sets/right/style.rb +3 -2
- data/mods/standard/sets/right/update.rb +2 -5
- data/mods/standard/sets/rstar/rules.rb +0 -2
- data/mods/standard/sets/self/head.rb +2 -3
- data/mods/standard/sets/self/navbox.rb +0 -7
- data/mods/standard/sets/self/recent.rb +2 -2
- data/mods/standard/sets/self/search.rb +10 -3
- data/mods/standard/sets/self/signin.rb +3 -3
- data/mods/standard/sets/type/cardtype.rb +2 -2
- data/mods/standard/sets/type/coffee_script.rb +4 -4
- data/mods/standard/sets/type/css.rb +12 -4
- data/mods/standard/sets/type/image.rb +19 -19
- data/mods/standard/sets/type/java_script.rb +1 -1
- data/mods/standard/sets/type/layout_type.rb +3 -2
- data/mods/standard/sets/type/pointer.rb +3 -2
- data/mods/standard/sets/type/scss.rb +6 -34
- data/mods/standard/sets/type/search_type.rb +22 -16
- data/mods/standard/sets/type/set.rb +2 -2
- data/mods/standard/sets/type/setting.rb +2 -2
- data/mods/standard/sets/type/skin.rb +4 -18
- data/spec/controllers/card_controller_spec.rb +2 -2
- data/spec/lib/card/flexmail_spec.rb +1 -0
- data/spec/lib/card/format_spec.rb +9 -9
- data/spec/lib/card/loader_spec.rb +1 -2
- data/spec/lib/card/name_spec.rb +7 -1
- data/spec/lib/card/set_pattern_spec.rb +5 -5
- data/spec/mods/core/sets/all/pattern_spec.rb +0 -9
- data/spec/mods/core/sets/all/phases_spec.rb +2 -1
- data/spec/mods/standard/lib/machine_input_spec.rb +20 -4
- data/spec/mods/standard/lib/machine_spec.rb +64 -14
- data/spec/mods/standard/sets/right/machine_output_spec.rb +2 -17
- data/spec/mods/standard/sets/right/script_spec.rb +9 -5
- data/spec/mods/standard/sets/right/style_spec.rb +11 -5
- data/spec/mods/standard/sets/type/coffeescript_spec.rb +5 -7
- data/spec/mods/standard/sets/type/css_spec.rb +3 -4
- data/spec/mods/standard/sets/type/javascript_spec.rb +3 -5
- data/spec/mods/standard/sets/type/scss_spec.rb +4 -7
- data/spec/mods/standard/sets/type/skin_spec.rb +29 -8
- metadata +5 -4
- data/mods/standard/sets/right/structure.rb +0 -12
@@ -1,26 +1,29 @@
|
|
1
1
|
|
2
2
|
include File
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
view :source do |args|
|
9
|
-
style = case
|
10
|
-
when @mode==:closed ; :icon
|
11
|
-
when args[:size] ; args[:size]
|
12
|
-
when main? ; :large
|
13
|
-
else ; :medium
|
14
|
-
end
|
15
|
-
style = :original if style.to_sym == :full
|
16
|
-
card.attach.url style
|
17
|
-
end
|
4
|
+
format do
|
5
|
+
|
6
|
+
include File::Format
|
18
7
|
|
8
|
+
view :closed_content do |args|
|
9
|
+
_render_core :size=>:icon
|
10
|
+
end
|
19
11
|
|
20
|
-
view :
|
12
|
+
view :source do |args|
|
13
|
+
style = case
|
14
|
+
when @mode==:closed ; :icon
|
15
|
+
when args[:size] ; args[:size]
|
16
|
+
when main? ; :large
|
17
|
+
else ; :medium
|
18
|
+
end
|
19
|
+
style = :original if style.to_sym == :full
|
20
|
+
card.attach.url style
|
21
|
+
end
|
21
22
|
|
23
|
+
end
|
22
24
|
|
23
25
|
format :html do
|
26
|
+
include File::HtmlFormat
|
24
27
|
|
25
28
|
view :core do |args|
|
26
29
|
handle_source args do |source|
|
@@ -40,8 +43,6 @@ format :html do
|
|
40
43
|
out
|
41
44
|
end
|
42
45
|
|
43
|
-
view :editor, :type=>:file
|
44
|
-
|
45
46
|
end
|
46
47
|
|
47
48
|
format :css do
|
@@ -55,12 +56,11 @@ format :css do
|
|
55
56
|
end
|
56
57
|
|
57
58
|
format :file do
|
59
|
+
include File::FileFormat
|
58
60
|
|
59
61
|
view :style do |args| #should this be in model?
|
60
62
|
['', 'full'].member?( args[:style].to_s ) ? :original : args[:style]
|
61
63
|
end
|
62
64
|
|
63
|
-
view :core, :type=>:file
|
64
|
-
|
65
65
|
end
|
66
66
|
|
@@ -128,13 +128,14 @@ format :css do
|
|
128
128
|
%(#{major_comment "STYLE GROUP: \"#{card.name}\"", '='}#{ _render_core })
|
129
129
|
end
|
130
130
|
|
131
|
-
view :content, :core
|
132
|
-
|
133
131
|
view :core do |args|
|
134
132
|
card.item_cards.map do |item|
|
135
133
|
nest item, :view=>(params[:item] || :content)
|
136
134
|
end.join "\n\n"
|
137
135
|
end
|
136
|
+
|
137
|
+
view :content, :core
|
138
|
+
|
138
139
|
end
|
139
140
|
|
140
141
|
format :data do
|
@@ -1,38 +1,11 @@
|
|
1
|
-
|
2
|
-
require 'sass'
|
3
|
-
|
4
|
-
include Machine
|
5
|
-
include MachineInput
|
6
|
-
|
7
|
-
store_machine_output :filetype => "css"
|
8
|
-
|
9
|
-
def compressed_css input
|
10
|
-
begin
|
11
|
-
Sass.compile input, :style=>:compressed
|
12
|
-
rescue Exception=>e
|
13
|
-
raise Card::Oops, "Stylesheet Error:\n#{ e.message }"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
machine_input do
|
18
|
-
compressed_css format(:format => :css)._render_core
|
19
|
-
end
|
20
|
-
|
1
|
+
include Card::Set::Type::Css
|
21
2
|
|
22
3
|
format :html do
|
23
|
-
|
24
|
-
view :editor, :
|
4
|
+
view :core, :mod=>Css::HtmlFormat
|
5
|
+
view :editor, :mod=>PlainText::HtmlFormat
|
6
|
+
end
|
25
7
|
|
26
|
-
view :core do |args|
|
27
|
-
#fixme - shouldn't we just render SCSS?
|
28
|
-
css = compile_scss _render_raw
|
29
|
-
highlighted_css = ::CodeRay.scan( css, :css ).div
|
30
|
-
process_content highlighted_css
|
31
|
-
end
|
32
8
|
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
9
|
format do
|
37
10
|
view :core do |args|
|
38
11
|
process_content compile_scss(_render_raw)
|
@@ -40,10 +13,9 @@ format do
|
|
40
13
|
|
41
14
|
def compile_scss scss, style=:expanded
|
42
15
|
Sass.compile scss, :style=>style
|
43
|
-
rescue
|
16
|
+
rescue =>e
|
44
17
|
e
|
45
|
-
end
|
46
|
-
|
18
|
+
end
|
47
19
|
end
|
48
20
|
|
49
21
|
|
@@ -55,6 +55,8 @@ format do
|
|
55
55
|
%{#{e.class.to_s} :: #{e.message} :: #{card.content}}
|
56
56
|
when search_vars[:spec][:return] =='count'
|
57
57
|
search_vars[:results].to_s
|
58
|
+
when @mode == :template
|
59
|
+
render :raw
|
58
60
|
else
|
59
61
|
_render_card_list args
|
60
62
|
end
|
@@ -72,13 +74,13 @@ format do
|
|
72
74
|
|
73
75
|
def search_vars args={}
|
74
76
|
|
75
|
-
@
|
77
|
+
@search_vars ||= begin
|
76
78
|
v = {}
|
77
79
|
v[:spec] = card.spec search_params
|
78
80
|
v[:item] = set_inclusion_opts args.merge( :spec_view=>v[:spec][:view] )
|
79
81
|
v[:results] = card.item_cards search_params
|
80
82
|
v
|
81
|
-
rescue
|
83
|
+
rescue =>e
|
82
84
|
{ :error => e }
|
83
85
|
end
|
84
86
|
end
|
@@ -90,20 +92,11 @@ format do
|
|
90
92
|
# explicit > inclusion syntax > WQL > inclusion defaults
|
91
93
|
end
|
92
94
|
|
93
|
-
def default_search_params
|
94
|
-
set_default_search_params
|
95
|
-
end
|
96
95
|
|
97
|
-
|
98
|
-
@default_search_params ||= begin
|
99
|
-
p = { :default_limit=> 100 }.merge overrides
|
100
|
-
set_search_params_variables! p
|
101
|
-
p
|
102
|
-
end
|
103
|
-
end
|
96
|
+
|
104
97
|
|
105
98
|
def search_params
|
106
|
-
@
|
99
|
+
@search_params ||= begin
|
107
100
|
p = default_search_params.clone
|
108
101
|
|
109
102
|
if focal?
|
@@ -114,18 +107,31 @@ format do
|
|
114
107
|
p
|
115
108
|
end
|
116
109
|
end
|
110
|
+
|
111
|
+
def default_search_params # wahh?
|
112
|
+
set_default_search_params
|
113
|
+
end
|
114
|
+
|
115
|
+
def set_default_search_params overrides={}
|
116
|
+
@default_search_params ||= begin
|
117
|
+
p = { :default_limit=> 100 }.merge overrides
|
118
|
+
set_search_params_variables! p
|
119
|
+
p
|
120
|
+
end
|
121
|
+
end
|
117
122
|
|
118
123
|
def set_search_params_variables! hash
|
119
124
|
hash[:vars] = params[:vars] || {}
|
120
125
|
params.each do |key,val|
|
121
|
-
|
122
|
-
|
126
|
+
case key.to_s
|
127
|
+
when '_wql' ; hash.merge! val
|
128
|
+
when /^\_(\w+)$/ ; hash[:vars][$1.to_sym] = val
|
123
129
|
end
|
124
130
|
end
|
125
131
|
end
|
126
132
|
|
127
133
|
def page_link text, page
|
128
|
-
@paging_path_args[:offset] = page * @paging_limit
|
134
|
+
@paging_path_args[:offset] = page * @paging_limit
|
129
135
|
" #{link_to raw(text), path(@paging_path_args), :class=>'card-paging-link slotter', :remote => true} "
|
130
136
|
end
|
131
137
|
|
@@ -67,13 +67,13 @@ include Card::Set::Type::SearchType
|
|
67
67
|
|
68
68
|
def inheritable?
|
69
69
|
return true if junction_only?
|
70
|
-
cardname.trunk_name.junction? and cardname.tag_name.key == Card::
|
70
|
+
cardname.trunk_name.junction? and cardname.tag_name.key == Card::SelfSet.pattern.key
|
71
71
|
end
|
72
72
|
|
73
73
|
def subclass_for_set
|
74
74
|
set_class_key = tag.codename
|
75
75
|
Card.set_patterns.find do |sub|
|
76
|
-
cardname.tag_name.key == sub.
|
76
|
+
cardname.tag_name.key == sub.pattern.key
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -21,7 +21,7 @@ view :core do |args|
|
|
21
21
|
:sort => ['content', 'name'],
|
22
22
|
:limit => 0
|
23
23
|
}
|
24
|
-
wql[:left][ (set_class.anchorless? ? :id : :right_id )] = set_class.
|
24
|
+
wql[:left][ (set_class.anchorless? ? :id : :right_id )] = set_class.pattern_id
|
25
25
|
|
26
26
|
rules = Card.search wql
|
27
27
|
[ set_class, rules ] unless rules.empty?
|
@@ -37,7 +37,7 @@ view :core do |args|
|
|
37
37
|
klasses.map do |klass, rules|
|
38
38
|
%{
|
39
39
|
<tr class="klass-row anchorless-#{ klass.anchorless? }">
|
40
|
-
<td class="setting-klass">#{ klass.anchorless? ? link_to_page( klass.
|
40
|
+
<td class="setting-klass">#{ klass.anchorless? ? link_to_page( klass.pattern ) : klass.pattern }</td>
|
41
41
|
<td class="rule-content-container">
|
42
42
|
<span class="closed-content content">#{ subformat(rules[0])._render_closed_content if klass.anchorless? }</span>
|
43
43
|
</td>
|
@@ -1,26 +1,12 @@
|
|
1
|
-
include Pointer
|
2
1
|
include Machine
|
3
2
|
include MachineInput
|
4
3
|
|
5
4
|
store_machine_output :filetype => "css"
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
format
|
10
|
-
|
11
|
-
view :core, :type=>:pointer
|
12
|
-
view :editor, :type=>:pointer
|
13
|
-
view :list, :type=>:pointer
|
14
|
-
view :checkbox, :type=>:pointer
|
15
|
-
view :multiselect, :type=>:pointer
|
16
|
-
view :radio, :type=>:pointer
|
17
|
-
view :select, :type=>:pointer
|
18
|
-
end
|
19
|
-
|
20
|
-
format :css do
|
21
|
-
view :content, :type=>:pointer
|
22
|
-
view :core, :type=>:pointer
|
23
|
-
end
|
6
|
+
include Pointer
|
7
|
+
format() { include Pointer::Format }
|
8
|
+
format(:html) { include Pointer::HtmlFormat }
|
9
|
+
format(:css ) { include Pointer::CssFormat }
|
24
10
|
|
25
11
|
|
26
12
|
|
@@ -180,7 +180,7 @@ describe CardController do
|
|
180
180
|
get :read, {:id=>'~9999999'}
|
181
181
|
assert_response 404
|
182
182
|
end
|
183
|
-
|
183
|
+
|
184
184
|
it "returns denial when no read permission" do
|
185
185
|
Card::Auth.as_bot do
|
186
186
|
Card.create! :name=>'Strawberry', :type=>'Fruit' #only admin can read
|
@@ -249,7 +249,7 @@ describe CardController do
|
|
249
249
|
args = { :id=>@all_style.machine_output_card.name, :format=>'css', :explicit_file=>true }
|
250
250
|
get :read, args
|
251
251
|
output_card = Card[ "#{ Card[:all].name }+#{ Card[:style].name }+#{ Card[:machine_output].name}" ]
|
252
|
-
expect(response).to redirect_to(
|
252
|
+
expect(response).to redirect_to( @all_style.machine_output_url )
|
253
253
|
get :read, args
|
254
254
|
expect(response.status).to eq(200)
|
255
255
|
end
|
@@ -8,21 +8,21 @@ describe Card::Format do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should respect defaults" do
|
11
|
-
@format.show_view?( :menu,
|
12
|
-
@format.show_view?( :menu,
|
13
|
-
@format.show_view?( :menu, {}
|
11
|
+
@format.show_view?( :menu, :default_visibility=>:show ).should be_true
|
12
|
+
@format.show_view?( :menu, :default_visibility=>:hide ).should be_false
|
13
|
+
@format.show_view?( :menu, {} ).should be_true
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should respect developer default overrides" do
|
17
|
-
@format.show_view?( :menu,
|
18
|
-
@format.show_view?( :menu,
|
19
|
-
@format.show_view?( :menu,
|
17
|
+
@format.show_view?( :menu, :optional_menu=>:show, :default_visibility=>:hide ).should be_true
|
18
|
+
@format.show_view?( :menu, :optional_menu=>:hide, :default_visibility=>:show ).should be_false
|
19
|
+
@format.show_view?( :menu, :optional_menu=>:hide ).should be_false
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should handle args from inclusions" do
|
23
|
-
@format.show_view?( :menu,
|
24
|
-
@format.show_view?( :menu,
|
25
|
-
@format.show_view?( :menu, :show=>'menu', :optional_menu=>:hide
|
23
|
+
@format.show_view?( :menu, :show=>'menu', :default_visibility=>:hide ).should be_true
|
24
|
+
@format.show_view?( :menu, :hide=>'menu, paging', :default_visibility=>:show ).should be_false
|
25
|
+
@format.show_view?( :menu, :show=>'menu', :optional_menu=>:hide ).should be_true
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should handle hard developer overrides" do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
describe Card::Loader do
|
3
3
|
let(:card_double) { proxy Card }
|
4
|
-
let(:pat_all_double) { proxy Card::
|
4
|
+
let(:pat_all_double) { proxy Card::AllSet }
|
5
5
|
let(:format_double) { proxy Card::Format }
|
6
6
|
let(:html_format_double) { proxy Card::HtmlFormat }
|
7
7
|
it "should auto-load Card class methods from lib/wagn and mods" do
|
@@ -10,7 +10,6 @@ describe Card::Loader do
|
|
10
10
|
card_double.should_receive(:load_sets)
|
11
11
|
card_double.should_receive(:tracks).with(:any_args) # so Card still loads without core in failure testing
|
12
12
|
card_double.method(:version).should be
|
13
|
-
card_double.method(:method_key).should be
|
14
13
|
card_double.method(:type_card).should be
|
15
14
|
card_double.method(:file_path).should be
|
16
15
|
end
|
data/spec/lib/card/name_spec.rb
CHANGED
@@ -101,7 +101,13 @@ describe Card::Name do
|
|
101
101
|
# "Tes~sd".to_name.should_not be_valid
|
102
102
|
"TEST/DDER".to_name.should_not be_valid
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
|
+
it "rejects long names" do
|
106
|
+
card = Card.new
|
107
|
+
card.name="1"*256
|
108
|
+
card.should_not be_valid
|
109
|
+
end
|
110
|
+
end
|
105
111
|
|
106
112
|
describe "#left_name" do
|
107
113
|
it "returns nil for non junction" do
|
@@ -17,23 +17,23 @@ end
|
|
17
17
|
|
18
18
|
#FIXME - these should probably be in pattern-specific specs, though that may not leave much to test in the base class :)
|
19
19
|
|
20
|
-
describe Card::
|
20
|
+
describe Card::RightSet do
|
21
21
|
it_generates :name => "author+*right", :from => Card.new( :name => "Iliad+author" )
|
22
22
|
it_generates :name => "author+*right", :from => Card.new( :name => "+author" )
|
23
23
|
end
|
24
24
|
|
25
|
-
describe Card::
|
25
|
+
describe Card::TypeSet do
|
26
26
|
it_generates :name => "Book+*type", :from => Card.new( :type => "Book" )
|
27
27
|
end
|
28
28
|
|
29
|
-
describe Card::
|
29
|
+
describe Card::AllPlusSet do
|
30
30
|
it_generates :name => "*all plus", :from => Card.new( :name => "Book+author" )
|
31
31
|
end
|
32
32
|
|
33
|
-
describe Card::
|
33
|
+
describe Card::AllSet do
|
34
34
|
it_generates :name => "*all", :from => Card.new( :type => "Book" )
|
35
35
|
end
|
36
36
|
|
37
|
-
describe Card::
|
37
|
+
describe Card::TypePlusRightSet do
|
38
38
|
it_generates :name => "Book+author+*type plus right", :from => Card.new( :name=>"Iliad+author" )
|
39
39
|
end
|
@@ -44,15 +44,6 @@ describe Card::Set::All::Pattern do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
describe :method_keys do
|
48
|
-
it "returns correct set names for simple cards" do
|
49
|
-
card = Card.new( :name => "AnewCard" )
|
50
|
-
card.method_keys.should == [ "basic_type", ""]
|
51
|
-
card.save!
|
52
|
-
card = Card.fetch("AnewCard")
|
53
|
-
card.method_keys.should == [ "basic_type",""]
|
54
|
-
end
|
55
|
-
end
|
56
47
|
|
57
48
|
describe :rule_set_keys do
|
58
49
|
it "returns correct set names for new cards" do
|