sort_this 1.0.2 → 1.0.3

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/.travis.yml CHANGED
@@ -1,8 +1,17 @@
1
1
  language: ruby
2
+
2
3
  rvm:
3
- - "1.9.2"
4
- - "1.9.3"
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - 2.0.0
7
+
5
8
  gemfile:
6
9
  - Gemfile
10
+ - Gemfile.rails3.2
7
11
  - Gemfile.rails3.1
8
- - Gemfile.rails3.0
12
+ - Gemfile.rails3.0
13
+
14
+ matrix:
15
+ exclude:
16
+ - rvm: 1.9.2
17
+ gemfile: Gemfile
data/Gemfile CHANGED
@@ -1,11 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '~> 3.2.0'
3
+ gem 'rails', '~> 4.0.0.beta', github: 'rails/rails', branch: 'master'
4
4
  gem 'memoist', '0.2.0'
5
5
 
6
6
  gem 'rspec', '2.12.0'
7
- gem 'sqlite3', '1.3.6'
7
+ gem 'sqlite3'
8
8
  gem 'factory_girl', '4.1.0'
9
- gem 'database_cleaner', '0.9.1'
9
+ gem 'database_cleaner', '1.0.0.RC1'
10
10
  gem 'capybara', '2.0.1'
11
11
  gem 'rake'
data/Gemfile.rails3.2 ADDED
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 3.2.0'
4
+ gem 'memoist', '0.2.0'
5
+
6
+ gem 'rspec', '2.12.0'
7
+ gem 'sqlite3', '1.3.6'
8
+ gem 'factory_girl', '4.1.0'
9
+ gem 'database_cleaner', '0.9.1'
10
+ gem 'capybara', '2.0.1'
11
+ gem 'rake'
data/README.md CHANGED
@@ -36,7 +36,7 @@ The options are
36
36
 
37
37
  column_name: (Optional) The name of the column to sort on. If left blank it will use the sort name.
38
38
  default: (Optional) Defines a default sort if provided. The valid options are 'ASC' or 'DESC'.
39
- table_name (Optional) Overrides the table name used, should usually be used in coordination with joins.
39
+ table_name: (Optional) Overrides the table name used, should usually be used in coordination with joins.
40
40
  joins: (Optional) Defines an association to join on, this should be provided if the column is in another table. ** Requires table name to be set. **
41
41
  This is what you would usually pass into a joins or includes clause for ActiveRecord.
42
42
  clause: (Optional) Overrides the clause used for the sort.
@@ -71,7 +71,10 @@ In you controller define a default sort
71
71
 
72
72
  Defined Highest to Lowest priority
73
73
 
74
- - Throw error when the table_name option is not set and joins is set.
74
+ - Options on the `sortable` controller options
75
+ - Limiting which actions it can be applied on
76
+ - Allowing different types of sorts for different actions (defining multiple sortables)
77
+ - Customized sort parameters
75
78
  - Being able to define multiple column sorts
76
79
 
77
80
  Something like:
@@ -84,11 +87,9 @@ Defined Highest to Lowest priority
84
87
 
85
88
  not sure how that'd be called though...
86
89
 
90
+ - Throw error when the table_name option is not set and joins is set.
87
91
  - Define a default scope and remove from the sort method, gives more control to developer.
88
92
  - Define scopes for each sort defined (individual sort scopes)
89
- - Add the ability to customize the sort and direction parameters
90
- - Testing on different databases (should probably hit postgresql and mysql unless the way SQLite handles it in the same way)
91
- - Define rails 3.0 with ruby 1.8.7 gemfile for travis ci tests as 1.8.7 is still prevelant for 3.0
92
93
 
93
94
  ## Contributing
94
95
 
@@ -75,14 +75,14 @@ module SortThis
75
75
  order_clauses << sort_clause
76
76
  end
77
77
 
78
- query = scoped
78
+ query = base_query
79
79
  query = joins(table_joins.uniq!) unless table_joins.empty?
80
80
  query = query.order(order_clauses.join(', '))
81
81
  query
82
82
  end
83
83
 
84
84
  def sort(sort_column = nil, sort_direction = DEFAULT_SORT_DIRECTION)
85
- query = scoped
85
+ query = base_query
86
86
 
87
87
  # sanitize the sort column and direction
88
88
  sort_column = sort_column.to_s.downcase.to_sym
@@ -114,6 +114,16 @@ module SortThis
114
114
 
115
115
  query
116
116
  end
117
+
118
+ private
119
+
120
+ def base_query
121
+ if Rails.version < '4.0'
122
+ scoped
123
+ else
124
+ all
125
+ end
126
+ end
117
127
 
118
128
  end
119
129
  end
@@ -1,3 +1,3 @@
1
1
  module SortThis
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
data/lib/sort_this.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'rails'
2
+
1
3
  require 'sort_this/version'
2
4
  require 'sort_this/sort_this_error'
3
5
  require 'sort_this/active_record'
@@ -280,10 +280,6 @@ describe SortThis::ActiveRecord do
280
280
  :vendor_name => {:column_name => :name, :table_name => 'vendors', :joins => :vendor}
281
281
  end
282
282
 
283
- it 'should return a relation' do
284
- Quote.sort.class.should == ActiveRecord::Relation
285
- end
286
-
287
283
  context 'default parameters' do
288
284
  it 'should sort by quote price ascending' do
289
285
  Quote.sort.should == [quote3, quote2, quote1, quote4]
data/spec/spec_helper.rb CHANGED
@@ -13,4 +13,4 @@ FactoryGirl.find_definitions
13
13
 
14
14
  RSpec.configure do |config|
15
15
  config.include FactoryGirl::Syntax::Methods
16
- end
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sort_this
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-08 00:00:00.000000000 Z
12
+ date: 2013-03-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -60,6 +60,7 @@ files:
60
60
  - Gemfile.rails3.0.lock
61
61
  - Gemfile.rails3.1
62
62
  - Gemfile.rails3.1.lock
63
+ - Gemfile.rails3.2
63
64
  - LICENSE.txt
64
65
  - README.md
65
66
  - Rakefile
@@ -92,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
93
  version: '0'
93
94
  segments:
94
95
  - 0
95
- hash: 3994324686683044989
96
+ hash: 1981168485553352344
96
97
  required_rubygems_version: !ruby/object:Gem::Requirement
97
98
  none: false
98
99
  requirements: