sort_it_out 0.9.2 → 1.0.0

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.
data/Histroy.txt CHANGED
@@ -1,3 +1,8 @@
1
+ = 1.0.0 2010-09-30
2
+
3
+ * Add default sort direction specification.
4
+
5
+
1
6
  = 0.9.2 2009-11-15
2
7
 
3
8
  * Added ability yo specify default sort as a string that is a SQL fragment.
data/README.rdoc CHANGED
@@ -43,12 +43,23 @@ Simplest case:
43
43
  end
44
44
  end
45
45
 
46
- In the previous example a before filter is run that will set up an @order variable containing a SQL fragment
46
+ In the previous example a before filter is run that will set up an @order variable containing a SQL fragment
47
47
  for the order clause. The order clause will be set up from the parameters :order and :direction.
48
48
 
49
+ Include a default sort direction:
50
+
51
+ class UsersController< ApplicationController
52
+ sortable :default => { :attribute => :name, :direction => 'DESC' }
53
+
54
+ def index
55
+ User.find( :all, :order => @order ) # @order is set up by sort_it_out
56
+ ...
57
+ end
58
+ end
59
+
49
60
  More complex case:
50
61
 
51
-
62
+
52
63
  class UsersController< ApplicationController
53
64
  sortable :default => :name, :map => { :name => [:name_last, :name_first, :name_middle] }
54
65
 
@@ -58,8 +69,8 @@ More complex case:
58
69
  end
59
70
  end
60
71
 
61
- In the previous example a default field to sort by is configured. Thus, if there is no :order param, the
62
- default field is used. There is also a map set up. If the :order param is :name, then the order clause will
72
+ In the previous example a default field to sort by is configured. Thus, if there is no :order param, the
73
+ default field is used. There is also a map set up. If the :order param is :name, then the order clause will
63
74
  be built using the name_last, name_first and name_middle fields.
64
75
 
65
76
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.2
1
+ 1.0.0
data/lib/sort_it_out.rb CHANGED
@@ -4,7 +4,7 @@ $:.unshift(File.dirname(__FILE__)) unless
4
4
  require 'sort_it_out/sortable.rb'
5
5
 
6
6
  module SortItOut
7
- VERSION = '0.9.2'
7
+ VERSION = '1.0.0'
8
8
  end
9
9
 
10
10
  ActionController::Base.send( :include, SortItOut::Sortable ) if defined?( ActionController::Base )
@@ -1,6 +1,6 @@
1
1
  module SortItOut
2
2
  module Sortable
3
-
3
+
4
4
  def self.included( base )
5
5
  base.extend( ActMethods )
6
6
  end
@@ -20,7 +20,15 @@ module SortItOut
20
20
  module InstanceMethods
21
21
  def resolve_sort
22
22
  order = params[:order]
23
- order = params[:order] = self.options[:default] unless order
23
+ unless order
24
+ if self.options[:default].is_a?( String ) || self.options[:default].is_a?( Symbol )
25
+ order = params[:order] = self.options[:default]
26
+ elsif self.options[:default].is_a?( Hash )
27
+ order = params[:order] = self.options[:default][:attribute]
28
+ params[:direction] = self.options[:default][:direction]
29
+ end
30
+ end
31
+
24
32
  params[:direction] = 'ASC' unless params[:direction]
25
33
  @order = order.nil? ? "" : resolve_order_clause( order, params[:direction] )
26
34
  end
@@ -39,6 +47,6 @@ module SortItOut
39
47
  end
40
48
  end
41
49
  end
42
-
50
+
43
51
  end
44
52
  end
data/sort_it_out.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sort_it_out}
8
- s.version = "0.9.2"
8
+ s.version = "1.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jason Harrelson"]
12
- s.date = %q{2009-11-15}
12
+ s.date = %q{2010-09-30}
13
13
  s.description = %q{Easily apply sorting to your Rails controller actions.}
14
14
  s.email = %q{jason@lookforwardenterprises.com}
15
15
  s.extra_rdoc_files = [
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.homepage = %q{http://github.com/midas/sort_it_out}
35
35
  s.rdoc_options = ["--charset=UTF-8"]
36
36
  s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.5}
37
+ s.rubygems_version = %q{1.3.7}
38
38
  s.summary = %q{Easily apply sorting to your Rails controller actions.}
39
39
  s.test_files = [
40
40
  "spec/sort_it_out_spec.rb",
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
45
45
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
46
  s.specification_version = 3
47
47
 
48
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
48
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
49
  s.add_development_dependency(%q<rspec>, [">= 0"])
50
50
  else
51
51
  s.add_dependency(%q<rspec>, [">= 0"])
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sort_it_out
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - Jason Harrelson
@@ -9,19 +15,23 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-11-15 00:00:00 -06:00
18
+ date: 2010-09-30 00:00:00 -05:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: rspec
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
23
32
  version: "0"
24
- version:
33
+ type: :development
34
+ version_requirements: *id001
25
35
  description: Easily apply sorting to your Rails controller actions.
26
36
  email: jason@lookforwardenterprises.com
27
37
  executables: []
@@ -55,21 +65,27 @@ rdoc_options:
55
65
  require_paths:
56
66
  - lib
57
67
  required_ruby_version: !ruby/object:Gem::Requirement
68
+ none: false
58
69
  requirements:
59
70
  - - ">="
60
71
  - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
61
75
  version: "0"
62
- version:
63
76
  required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
64
78
  requirements:
65
79
  - - ">="
66
80
  - !ruby/object:Gem::Version
81
+ hash: 3
82
+ segments:
83
+ - 0
67
84
  version: "0"
68
- version:
69
85
  requirements: []
70
86
 
71
87
  rubyforge_project:
72
- rubygems_version: 1.3.5
88
+ rubygems_version: 1.3.7
73
89
  signing_key:
74
90
  specification_version: 3
75
91
  summary: Easily apply sorting to your Rails controller actions.