data_table 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,5 +1,3 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "will_paginate"
4
-
5
3
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- data_table (0.1.2)
4
+ data_table (0.1.6)
5
5
  rails (~> 3.0.0)
6
6
  will_paginate (~> 3.0.pre2)
7
7
 
data/TODO ADDED
@@ -0,0 +1 @@
1
+ - repackage as a Rails 3 responder
@@ -4,7 +4,7 @@ module DataTable
4
4
  def _find_objects params, fields, search_fields
5
5
  self.where(_where_conditions params[:sSearch], search_fields).
6
6
  order(_order_fields params, fields).
7
- paginate :page => _page(params), :per_page => params[:iDisplayLength]
7
+ paginate :page => _page(params), :per_page => _per_page(params)
8
8
  end
9
9
 
10
10
  def _where_conditions query, search_fields
@@ -37,6 +37,14 @@ module DataTable
37
37
  def _page params
38
38
  params[:iDisplayStart].to_i / params[:iDisplayLength].to_i + 1
39
39
  end
40
+
41
+ def _per_page params
42
+ case (display_length = params[:iDisplayLength].to_i)
43
+ when -1 then self.count
44
+ when 0 then 25
45
+ else display_length
46
+ end
47
+ end
40
48
  end
41
49
 
42
50
  end
@@ -4,7 +4,7 @@ module DataTable
4
4
  def _find_objects params, fields, search_fields
5
5
  self.where(_where_conditions params[:sSearch], search_fields).
6
6
  order_by(_order_by_fields params, fields).
7
- paginate :page => _page(params), :per_page => params[:iDisplayLength]
7
+ paginate :page => _page(params), :per_page => _per_page(params)
8
8
  end
9
9
 
10
10
  def _where_conditions raw_query, search_fields
@@ -1,3 +1,3 @@
1
1
  module DataTable
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -12,8 +12,9 @@ describe DataTable do
12
12
  mock(self)._where_conditions("answer", %w(foo bar)) { "where clause" }
13
13
  mock(self)._order_fields(params, %w(foo bar baz)) { "order" }
14
14
 
15
- mock(self).where("where clause") { mock!.order("order") { mock!.paginate({:page => :page, :per_page => 10}) { :answer } } }
15
+ mock(self).where("where clause") { mock!.order("order") { mock!.paginate({:page => :page, :per_page => :per_page}) { :answer } } }
16
16
  mock(self)._page(params) { :page }
17
+ mock(self)._per_page(params) { :per_page }
17
18
 
18
19
  _find_objects(params, %w(foo bar baz), %w(foo bar)).should == :answer
19
20
  end
@@ -63,4 +63,21 @@ describe DataTable do
63
63
 
64
64
  end
65
65
 
66
+ context "#_per_page" do
67
+
68
+ it "should return 10 given an iDisplayLength of 10" do
69
+ send(:_per_page, {:iDisplayLength => "10"}).should == 10
70
+ end
71
+
72
+ it "should return a default of 25 given an invalid iDisplayLength" do
73
+ send(:_per_page, {:iDisplayLength => "foobar"}).should == 25
74
+ end
75
+
76
+ it "should return self.count given an iDisplayLength of -1" do
77
+ mock(self).count { :all }
78
+ send(:_per_page, {:iDisplayLength => "-1"}).should == :all
79
+ end
80
+
81
+ end
82
+
66
83
  end
@@ -11,8 +11,9 @@ describe DataTable do
11
11
  mock(self)._where_conditions("answer", %w(foo bar)) { "where clause" }
12
12
  mock(self)._order_by_fields(params, %w(foo bar baz)) { "order by" }
13
13
 
14
- mock(self).where("where clause") { mock!.order_by("order by") { mock!.paginate({:page => :page, :per_page => 10}) { :answer } } }
14
+ mock(self).where("where clause") { mock!.order_by("order by") { mock!.paginate({:page => :page, :per_page => :per_page}) { :answer } } }
15
15
  mock(self)._page(params) { :page }
16
+ mock(self)._per_page(params) { :per_page }
16
17
 
17
18
  _find_objects(params, %w(foo bar baz), %w(foo bar)).should == :answer
18
19
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_table
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 6
10
- version: 0.1.6
9
+ - 7
10
+ version: 0.1.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jason Dew
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-25 00:00:00 -04:00
18
+ date: 2010-12-15 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -114,6 +114,7 @@ files:
114
114
  - LICENSE
115
115
  - README.rdoc
116
116
  - Rakefile
117
+ - TODO
117
118
  - data_table.gemspec
118
119
  - lib/data_table.rb
119
120
  - lib/data_table/active_record.rb