sorting_table_for 0.2.0 → 0.2.1

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.
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  SortingTableFor::TableBuilder.default_boolean = [I18n.t(:bool_true, :scope => [:sorting_table_for, :columns]), I18n.t(:bool_false, :scope => [:sorting_table_for, :columns])]
16
19
  SortingTableFor::TableBuilder.i18n_default_format_date = :default
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -21,7 +24,7 @@ describe SortingTableFor, :type => :helper do
21
24
  html = table.columns
22
25
  html.should have_comp_tag("tbody", :count => 1)
23
26
  html.should have_comp_tag("tr", :count => (@users.size + 1))
24
- html.should have_comp_tag("td", :count => (@users.size * (User.content_columns.size + 2)) + 1)
27
+ html.should have_comp_tag("td", :count => (@users.size * (SortingTableForUser.content_columns.size + 2)) + 1)
25
28
  end
26
29
  end
27
30
 
@@ -33,7 +36,7 @@ describe SortingTableFor, :type => :helper do
33
36
 
34
37
  it "should add colspan for total entries" do
35
38
  helper.sorting_table_for(@users) do |table|
36
- table.columns.should match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
39
+ table.columns.should match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
37
40
  end
38
41
  end
39
42
 
@@ -45,7 +48,7 @@ describe SortingTableFor, :type => :helper do
45
48
 
46
49
  it "should add colspan for total entries" do
47
50
  helper.sorting_table_for(@users) do |table|
48
- table.columns.should match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
51
+ table.columns.should match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
49
52
  end
50
53
  end
51
54
 
@@ -85,7 +88,7 @@ describe SortingTableFor, :type => :helper do
85
88
  it "should have option colspan" do
86
89
  table_html = helper.sorting_table_for(@users) do |table|
87
90
  html = table.columns :colspan => 5
88
- html.should have_comp_tag('td[colspan="5"]', :count => (@users.size * User.content_columns.size))
91
+ html.should have_comp_tag('td[colspan="5"]', :count => (@users.size * SortingTableForUser.content_columns.size))
89
92
  end
90
93
  end
91
94
 
@@ -347,7 +350,7 @@ describe SortingTableFor, :type => :helper do
347
350
  helper.sorting_table_for(@users) do |table|
348
351
  html = table.columns
349
352
  html.should_not match("Total Entries " + @users.size.to_s)
350
- html.should_not match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
353
+ html.should_not match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
351
354
  end
352
355
  end
353
356
 
@@ -356,7 +359,7 @@ describe SortingTableFor, :type => :helper do
356
359
  helper.sorting_table_for(@users) do |table|
357
360
  html = table.columns
358
361
  html.should match("Total Entries " + @users.size.to_s)
359
- html.should match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
362
+ html.should match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
360
363
  end
361
364
  end
362
365
 
@@ -383,7 +386,7 @@ describe SortingTableFor, :type => :helper do
383
386
  it "should edit default actions" do
384
387
  SortingTableFor::TableBuilder.default_actions = [:show, :edit_password, :edit, :delete]
385
388
  helper.sorting_table_for(@users) do |table|
386
- table.columns.should have_comp_tag("td", :count => (@users.size * (User.content_columns.size + 4)) + 1)
389
+ table.columns.should have_comp_tag("td", :count => (@users.size * (SortingTableForUser.content_columns.size + 4)) + 1)
387
390
  end
388
391
  end
389
392
 
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
+
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
9
13
 
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -58,7 +61,7 @@ describe SortingTableFor, :type => :helper do
58
61
  it "should have option colspan" do
59
62
  table_html = helper.sorting_table_for(@users) do |table|
60
63
  html = table.headers :colspan => 5
61
- html.should have_comp_tag('th[colspan="5"]', :count => User.content_columns.size)
64
+ html.should have_comp_tag('th[colspan="5"]', :count => SortingTableForUser.content_columns.size)
62
65
  end
63
66
  end
64
67
 
@@ -217,9 +220,31 @@ describe SortingTableFor, :type => :helper do
217
220
  end
218
221
  html.should have_comp_tag("th:nth-child(1)[class=cur-sort-not]")
219
222
  html.should_not have_comp_tag("th:nth-child(2)[class=cur-sort-not]")
220
- end
221
- end
223
+ end
224
+ end
222
225
 
226
+ it "should works with options sort_as" do
227
+ helper.sorting_table_for(@users) do |table|
228
+ html = table.headers do
229
+ table.header 'my name', :sort_as => :username
230
+ end
231
+ html.should have_comp_tag("th:nth-child(1)", :text => 'my name')
232
+ html.should have_comp_tag("th:nth-child(1)[class=cur-sort-not]")
233
+ end
234
+ end
235
+
236
+ it "should works with options sort_as and sort" do
237
+ helper.sorting_table_for(@users, :sort => false) do |table|
238
+ html = table.headers do
239
+ table.header 'my name', :sort_as => :username, :sort => true
240
+ table.header :price
241
+ end
242
+ html.should have_comp_tag("th:nth-child(1)", :text => 'my name')
243
+ html.should have_comp_tag("th:nth-child(1)[class=cur-sort-not]")
244
+ html.should_not have_comp_tag("th:nth-child(2)[class=cur-sort-not]")
245
+ end
246
+ end
247
+
223
248
  it "should have option colspan" do
224
249
  table_html = helper.sorting_table_for(@users) do |table|
225
250
  html = table.headers do
@@ -360,7 +385,7 @@ describe SortingTableFor, :type => :helper do
360
385
  it "should edit default actions" do
361
386
  SortingTableFor::TableBuilder.default_actions = [:show, :edit_password, :edit, :delete]
362
387
  helper.sorting_table_for(@users) do |table|
363
- table.headers.should have_comp_tag("th", :count => User.column_names.size + 3)
388
+ table.headers.should have_comp_tag("th", :count => SortingTableForUser.column_names.size + 3)
364
389
  end
365
390
  end
366
391
 
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
@@ -9,11 +9,12 @@ describe SortingTableFor do
9
9
  describe ' #i18n' do
10
10
 
11
11
  before :each do
12
- SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user', '')
12
+ SortingTableFor::TableBuilder.i18n_default_scope = [ :namespace, :controller, :action ]
13
+ SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user')
13
14
  end
14
15
 
15
16
  it "should works by default" do
16
- SortingTableFor::I18n.set_options({}, 'user', '')
17
+ SortingTableFor::I18n.set_options({}, 'user')
17
18
  SortingTableFor::I18n.t(:test_name).should == 'i18n name'
18
19
  end
19
20
 
@@ -28,12 +29,16 @@ describe SortingTableFor do
28
29
  it "should works with i18n options" do
29
30
  SortingTableFor::I18n.t(:my_test, :value => :hello).should == 'say hello'
30
31
  end
32
+
33
+ it "should works with options add_scope" do
34
+ SortingTableFor::I18n.t(:name, :add_scope => [:add_scope]).should == 'add to scope'
35
+ end
31
36
 
32
37
  it "should set namespace scope" do
33
- SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user', 'fake_namespace')
38
+ SortingTableFor::I18n.set_options({:controller => 'fake_namespace/fakes_controller', :action => 'fake_action'}, 'user')
34
39
  SortingTableFor::I18n.t(:name).should == 'fake namespace'
35
40
  end
36
-
41
+
37
42
  it "should set scope with options" do
38
43
  SortingTableFor::TableBuilder.i18n_default_scope = [ :action ]
39
44
  SortingTableFor::I18n.t(:name).should == 'fake action'
@@ -41,7 +46,7 @@ describe SortingTableFor do
41
46
 
42
47
  it "should set scope with all options" do
43
48
  SortingTableFor::TableBuilder.i18n_default_scope = [ :model, :namespace, :controller, :action ]
44
- SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user', 'fake_namespace')
49
+ SortingTableFor::I18n.set_options({:controller => 'fake_namespace/fakes_controller', :action => 'fake_action'}, 'user')
45
50
  SortingTableFor::I18n.t(:name).should == 'fake'
46
51
  end
47
52
 
@@ -51,4 +56,4 @@ describe SortingTableFor do
51
56
  end
52
57
 
53
58
  end
54
- end
59
+ end
@@ -1,10 +1,17 @@
1
1
  test:
2
+
2
3
  date:
3
4
  formats:
4
5
  default: "%Y-%m-%d"
5
6
  short: "%b %d"
6
7
  long: "%B %d, %Y"
7
8
 
9
+ time:
10
+ formats:
11
+ default: "%d %B %Y %H:%M:%S"
12
+ short: "%d %b %H:%M"
13
+ long: "%A %d %B %Y %H:%M"
14
+
8
15
  day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
9
16
  abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
10
17
 
@@ -42,12 +49,11 @@ test:
42
49
  strip_insignificant_zeros: false
43
50
 
44
51
  sorting_table_for:
45
- total_entries: "Total Entries {{value}}"
46
52
  columns:
47
53
  bool_true: 'True'
48
54
  bool_false: 'False'
49
55
 
50
- fakes:
56
+ sorting_table_for_users:
51
57
  index:
52
58
  table_caption: 'Quick Caption'
53
59
  edit: 'Edit'
@@ -68,6 +74,7 @@ test:
68
74
  footer:
69
75
  username: 'UserFoot'
70
76
  price: 'PriceFoot'
77
+ total_entries: "Total Entries %{value}"
71
78
 
72
79
  fake_scope:
73
80
  my_test: 'Hello'
@@ -79,6 +86,8 @@ test:
79
86
  my_test: 'say {{value}}'
80
87
  my_add:
81
88
  name: 'fake add'
89
+ add_scope:
90
+ name: "add to scope"
82
91
 
83
92
  user:
84
93
  fake_namespace:
@@ -1,4 +1,5 @@
1
1
  test:
2
+
2
3
  date:
3
4
  formats:
4
5
  default: "%Y-%m-%d"
@@ -42,12 +43,11 @@ test:
42
43
  strip_insignificant_zeros: false
43
44
 
44
45
  sorting_table_for:
45
- total_entries: "Total Entries %{value}"
46
46
  columns:
47
47
  bool_true: 'True'
48
- bool_false: 'False'
48
+ bool_false: 'False'
49
49
 
50
- fakes:
50
+ sorting_table_for_users:
51
51
  index:
52
52
  table_caption: 'Quick Caption'
53
53
  edit: 'Edit'
@@ -68,7 +68,7 @@ test:
68
68
  footer:
69
69
  username: 'UserFoot'
70
70
  price: 'PriceFoot'
71
-
71
+ total_entries: "Total Entries %{value}"
72
72
 
73
73
  fake_scope:
74
74
  my_test: 'Hello'
@@ -80,6 +80,8 @@ test:
80
80
  my_test: 'say %{value}'
81
81
  my_add:
82
82
  name: 'fake add'
83
+ add_scope:
84
+ name: "add to scope"
83
85
 
84
86
  user:
85
87
  fake_namespace:
@@ -1,34 +1,40 @@
1
1
  require 'spec_helper'
2
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
3
3
 
4
4
  describe SortingTableModelScope do
5
5
 
6
6
  describe "# default usage" do
7
7
 
8
8
  it "should do nothing with no option" do
9
- User.sorting_table.all.should == User.all
9
+ SortingTableForUser.sorting_table.all.should == SortingTableForUser.all
10
10
  end
11
11
 
12
12
  it "should do nothing with option nil" do
13
- User.sorting_table(nil).all.should == User.all
13
+ SortingTableForUser.sorting_table(nil).all.should == SortingTableForUser.all
14
14
  end
15
15
 
16
16
  it "should do nothing with all options nil" do
17
- User.sorting_table(nil, nil, nil).all.should == User.all
17
+ SortingTableForUser.sorting_table(nil, nil, nil).all.should == SortingTableForUser.all
18
18
  end
19
19
 
20
20
  it "should raise an error with 4 arguments" do
21
21
  expect {
22
- User.sorting_table(nil, nil, nil, nil).all
22
+ SortingTableForUser.sorting_table(nil, nil, nil, nil).all
23
23
  }.to raise_error { ArgumentError }
24
24
  end
25
25
 
26
26
  it "should works with other scope" do
27
- User.good_position.sorting_table.set_limit(2).all.should == User.find(:all, :conditions => 'position > 3', :limit => 2)
27
+ SortingTableForUser.good_position.sorting_table.set_limit(2).all.should == SortingTableForUser.find(:all, :conditions => 'position > 3', :limit => 2)
28
28
  end
29
29
 
30
30
  it "should not erase other order" do
31
- User.sorting_table(nil, :firstname, :desc).find(:all, :order => 'lastname asc').should == User.find(:all, :order => 'lastname asc, firstname desc')
31
+ # Change order with scope in rails 3.0.3
32
+ if !defined? ActionPack or (ActionPack::VERSION::MAJOR <= 3 and ActionPack::VERSION::MINOR == 0 and ActionPack::VERSION::TINY <= 1)
33
+ current_order = 'lastname asc, firstname desc'
34
+ else
35
+ current_order = 'firstname desc, lastname asc'
36
+ end
37
+ SortingTableForUser.sorting_table(nil, :firstname, :desc).find(:all, :order => 'lastname asc').should == SortingTableForUser.find(:all, :order => current_order)
32
38
  end
33
39
 
34
40
  end
@@ -36,32 +42,32 @@ describe SortingTableModelScope do
36
42
  describe "# params usage" do
37
43
 
38
44
  it "should works with correct params" do
39
- User.sorting_table({ "table_sort" => { "username" => "asc" } }).all.should == User.find(:all, :order => 'username asc')
45
+ SortingTableForUser.sorting_table({ "table_sort" => { "username" => "asc" } }).all.should == SortingTableForUser.find(:all, :order => 'username asc')
40
46
  end
41
47
 
42
48
  it "should do nothing with wrong column" do
43
- User.sorting_table({ "table_sort" => { "test" => "asc" } }).all.should == User.all
49
+ SortingTableForUser.sorting_table({ "table_sort" => { "test" => "asc" } }).all.should == SortingTableForUser.all
44
50
  end
45
51
 
46
52
  it "should do nothing with wrong direction" do
47
- User.sorting_table({ "table_sort" => { "username" => "test" } }).all.should == User.all
53
+ SortingTableForUser.sorting_table({ "table_sort" => { "username" => "test" } }).all.should == SortingTableForUser.all
48
54
  end
49
55
 
50
56
  it "should do nothing with wrong arguments" do
51
- User.sorting_table({ "table_sort" => { "price" => nil } }).all.should == User.all
57
+ SortingTableForUser.sorting_table({ "table_sort" => { "price" => nil } }).all.should == SortingTableForUser.all
52
58
  end
53
59
 
54
60
  it "should do nothing with wrong arguments (2)" do
55
- User.sorting_table({ "table_sort" => nil }).all.should == User.all
61
+ SortingTableForUser.sorting_table({ "table_sort" => nil }).all.should == SortingTableForUser.all
56
62
  end
57
63
 
58
64
  it "should order by params not option" do
59
- User.sorting_table({ "table_sort" => { "username" => "asc" } }, :firstname, :desc).all.should == User.find(:all, :order => 'username asc')
65
+ SortingTableForUser.sorting_table({ "table_sort" => { "username" => "asc" } }, :firstname, :desc).all.should == SortingTableForUser.find(:all, :order => 'username asc')
60
66
  end
61
67
 
62
68
  it "should works with custom param name" do
63
69
  SortingTableFor::TableBuilder.params_sort_table = :sort_my_test
64
- User.sorting_table({ "sort_my_test" => { "username" => "asc" } }).all.should == User.find(:all, :order => 'username asc')
70
+ SortingTableForUser.sorting_table({ "sort_my_test" => { "username" => "asc" } }).all.should == SortingTableForUser.find(:all, :order => 'username asc')
65
71
  end
66
72
 
67
73
  end
@@ -69,19 +75,19 @@ describe SortingTableModelScope do
69
75
  describe "# options usage" do
70
76
 
71
77
  it "should works with option" do
72
- User.sorting_table(nil, :username, :desc).all.should == User.find(:all, :order => 'username desc')
78
+ SortingTableForUser.sorting_table(nil, :username, :desc).all.should == SortingTableForUser.find(:all, :order => 'username desc')
73
79
  end
74
80
 
75
81
  it "should set option asc if not given" do
76
- User.sorting_table(nil, :username).all.should == User.find(:all, :order => 'username asc')
82
+ SortingTableForUser.sorting_table(nil, :username).all.should == SortingTableForUser.find(:all, :order => 'username asc')
77
83
  end
78
84
 
79
85
  it "should do nothing with wrong column" do
80
- User.sorting_table(nil, :test).all.should == User.all
86
+ SortingTableForUser.sorting_table(nil, :test).all.should == SortingTableForUser.all
81
87
  end
82
88
 
83
89
  it "should do nothing with wring direction" do
84
- User.sorting_table(nil, :username, :test).all.should == User.all
90
+ SortingTableForUser.sorting_table(nil, :username, :test).all.should == SortingTableForUser.all
85
91
  end
86
92
 
87
93
  end