data_tables 0.1.5 → 0.1.6

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.
Files changed (2) hide show
  1. data/lib/data_tables.rb +26 -6
  2. metadata +19 -41
data/lib/data_tables.rb CHANGED
@@ -38,6 +38,7 @@ module DataTablesController
38
38
  conditions = options[:conditions] || []
39
39
  scope = options[:scope] || :domain
40
40
  named_scope = options[:named_scope]
41
+ named_scope_args = options[:named_scope_args]
41
42
  except = options[:except]
42
43
 
43
44
  if modelCls < Ohm::Model
@@ -59,7 +60,16 @@ module DataTablesController
59
60
  current_page = (params[:iDisplayStart].to_i/params[:iDisplayLength].to_i rescue 0) + 1
60
61
  objects = nil
61
62
  if search_condition.nil?
62
- objects = records.sort_by(columns[sort_column][:name].to_sym, :order=>"ALPHA " + params[:sSortDir_0].capitalize, :limit=>[params[:iDisplayStart].to_i, params[:iDisplayLength].to_i])
63
+ if Gem.loaded_specs['ohm'].version == Gem::Version.create('0.1.5')
64
+ objects = records.sort_by(columns[sort_column][:name].to_sym,
65
+ :order => "ALPHA " + params[:sSortDir_0].capitalize,
66
+ :start => params[:iDisplayStart].to_i,
67
+ :limit => params[:iDisplayLength].to_i)
68
+ else
69
+ objects = records.sort_by(columns[sort_column][:name].to_sym,
70
+ :order => "ALPHA " + params[:sSortDir_0].capitalize,
71
+ :limit => [params[:iDisplayStart].to_i, params[:iDisplayLength].to_i])
72
+ end
63
73
  total_display_records = total_records
64
74
  else
65
75
  options = {}
@@ -68,7 +78,16 @@ module DataTablesController
68
78
  options[:fuzzy] = {columns[sort_column][:name].to_sym => search_condition}
69
79
  objects = Lunar.search(modelCls, options)
70
80
  total_display_records = objects.size
71
- objects = objects.sort(:by => columns[sort_column][:name].to_sym, :order=>"ALPHA " + params[:sSortDir_0].capitalize, :limit=>[params[:iDisplayStart].to_i, params[:iDisplayLength].to_i])
81
+ if Gem.loaded_specs['ohm'].version == Gem::Version.create('0.1.5')
82
+ objects = objects.sort(:by => columns[sort_column][:name].to_sym,
83
+ :order => "ALPHA " + params[:sSortDir_0].capitalize,
84
+ :start => params[:iDisplayStart].to_i,
85
+ :limit => params[:iDisplayLength].to_i)
86
+ else
87
+ objects = objects.sort(:by => columns[sort_column][:name].to_sym,
88
+ :order => "ALPHA " + params[:sSortDir_0].capitalize,
89
+ :limit => [params[:iDisplayStart].to_i, params[:iDisplayLength].to_i])
90
+ end
72
91
  end
73
92
  data = objects.collect do |instance|
74
93
  columns.collect { |column| datatables_instance_get_value(instance, column) }
@@ -91,7 +110,7 @@ module DataTablesController
91
110
  if sort_column && sort_column.has_key?(:attribute)
92
111
  condstr = params[:sSearch].gsub(/_/, '\\\\_').gsub(/%/, '\\\\%')
93
112
  condition_local = "(text(#{sort_column[:name]}) ILIKE '#{condstr}%')"
94
- end
113
+ end
95
114
  end
96
115
 
97
116
  # We just need one conditions string for search at a time. Every time we input
@@ -117,8 +136,9 @@ module DataTablesController
117
136
  end
118
137
 
119
138
  if named_scope
120
- total_records = modelCls.send(named_scope).count :conditions => init_conditions.join(" AND ")
121
- total_display_records = modelCls.send(named_scope).count :conditions => conditions.join(" AND ")
139
+ args = named_scope_args ? Array(self.send(named_scope_args)) : []
140
+ total_records = modelCls.send(named_scope, *args).count :conditions => init_conditions.join(" AND ")
141
+ total_display_records = modelCls.send(named_scope, *args).count :conditions => conditions.join(" AND ")
122
142
  else
123
143
  total_records = modelCls.count :conditions => init_conditions.join(" AND ")
124
144
  total_display_records = modelCls.count :conditions => conditions.join(" AND ")
@@ -127,7 +147,7 @@ module DataTablesController
127
147
  sort_column = 1 if sort_column == 0
128
148
  current_page = (params[:iDisplayStart].to_i/params[:iDisplayLength].to_i rescue 0)+1
129
149
  if named_scope
130
- objects = modelCls.send(named_scope).paginate(:page => current_page,
150
+ objects = modelCls.send(named_scope, *args).paginate(:page => current_page,
131
151
  :order => "#{columns[sort_column][:name]} #{params[:sSortDir_0]}",
132
152
  :conditions => conditions.join(" AND "),
133
153
  :per_page => params[:iDisplayLength])
metadata CHANGED
@@ -1,15 +1,10 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: data_tables
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 1
9
- - 5
10
- version: 0.1.5
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Duane Compton
14
9
  - Calvin Bascom
15
10
  - Yi Su
@@ -17,55 +12,38 @@ authors:
17
12
  autorequire:
18
13
  bindir: bin
19
14
  cert_chain: []
20
-
21
- date: 2012-10-10 00:00:00 -04:00
22
- default_executable:
15
+ date: 2012-10-10 00:00:00.000000000 Z
23
16
  dependencies: []
24
-
25
17
  description: Originally a plugin
26
18
  email: Duane.Compton@gmail.com
27
19
  executables: []
28
-
29
20
  extensions: []
30
-
31
21
  extra_rdoc_files: []
32
-
33
- files:
22
+ files:
34
23
  - lib/data_tables.rb
35
24
  - lib/data_tables/data_tables_helper.rb
36
- has_rdoc: true
37
25
  homepage: http://rubygems.org/gems/data_tables
38
26
  licenses: []
39
-
40
27
  post_install_message:
41
28
  rdoc_options: []
42
-
43
- require_paths:
29
+ require_paths:
44
30
  - lib
45
- required_ruby_version: !ruby/object:Gem::Requirement
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
46
36
  none: false
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- hash: 3
51
- segments:
52
- - 0
53
- version: "0"
54
- required_rubygems_version: !ruby/object:Gem::Requirement
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
55
42
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
43
  requirements: []
64
-
65
44
  rubyforge_project:
66
- rubygems_version: 1.3.7
45
+ rubygems_version: 1.8.24
67
46
  signing_key:
68
47
  specification_version: 3
69
48
  summary: Rails friendly interface into DataTables
70
49
  test_files: []
71
-