sorted 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0262798feaab6b58860df0dd56c6eda414263e58
4
- data.tar.gz: dde3ec5870721ddc59198f98132ea9ca03c7c763
3
+ metadata.gz: cc893cb851e4226ef3548dcba99ae5e44592d9c6
4
+ data.tar.gz: 9ee8b89780d7f29798643338f186846e58756508
5
5
  SHA512:
6
- metadata.gz: 8dc76069eeb8b172e3c6096588f9bc12404d44c747800fc3332f5e82344d476e1d22cab0a8bcc2110aa0c3292cc8c72fe3e6839cd28d0e92e2bb663696ab01d6
7
- data.tar.gz: 18aec9e23e623f26be39632328d190c4213d7f960abb162b65337cfd2a9e7191775e303cee573ed63c471ae814b5368bd2d2d634c9ead24e8582df3c2db02b80
6
+ metadata.gz: 1f0d30cbf53dfabf7d54f46c391218dd81674758655decf875531c014111ec2f1c6841c0a6e73af56249b41d8538525f064744574ece3e4e717b96d59eb5de86
7
+ data.tar.gz: 3f95d6fb84711892c6838a529f9caef5c006279322576c7dacd3ac2b0eb2e9167642880974f95983e82ebf64d8895828c3b303435fc22464610b68fac3148fca
data/.gitignore CHANGED
@@ -19,5 +19,6 @@ rdoc
19
19
  pkg
20
20
  .rvmrc
21
21
  Gemfile.lock
22
+ .bundle
22
23
 
23
24
  ## PROJECT::SPECIFIC
@@ -1,12 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'railties', '>= 4'
4
- gem 'mongoid', '~> 4', github: 'mongoid/mongoid', require: 'mongoid'
4
+ gem 'mongoid', '~> 4'
5
5
  gem 'rspec-rails', '>= 2.0'
6
- gem 'origin'
7
- gem 'moped'
8
- gem 'nokogiri'
9
- gem 'xpath'
10
- gem 'mime-types'
11
6
 
12
7
  gemspec path: '../'
@@ -1,89 +1,84 @@
1
- GIT
2
- remote: git://github.com/mongoid/mongoid.git
3
- revision: 9b3bc1264032209b7a6c0e82d0ca656f401e476b
4
- specs:
5
- mongoid (4.0.0)
6
- activemodel (~> 4.0.0)
7
- moped (~> 2.0.beta3)
8
- origin (~> 1.0)
9
- tzinfo (~> 0.3.37)
10
-
11
1
  PATH
12
- remote: /Users/rufuspost/Projects/ruby/gems/sorted
2
+ remote: ../
13
3
  specs:
14
4
  sorted (1.0.0)
15
5
 
16
6
  GEM
17
7
  remote: https://rubygems.org/
18
8
  specs:
19
- actionpack (4.0.0)
20
- activesupport (= 4.0.0)
21
- builder (~> 3.1.0)
22
- erubis (~> 2.7.0)
9
+ actionpack (4.1.4)
10
+ actionview (= 4.1.4)
11
+ activesupport (= 4.1.4)
23
12
  rack (~> 1.5.2)
24
13
  rack-test (~> 0.6.2)
25
- activemodel (4.0.0)
26
- activesupport (= 4.0.0)
27
- builder (~> 3.1.0)
28
- activesupport (4.0.0)
29
- i18n (~> 0.6, >= 0.6.4)
30
- minitest (~> 4.2)
31
- multi_json (~> 1.3)
14
+ actionview (4.1.4)
15
+ activesupport (= 4.1.4)
16
+ builder (~> 3.1)
17
+ erubis (~> 2.7.0)
18
+ activemodel (4.1.4)
19
+ activesupport (= 4.1.4)
20
+ builder (~> 3.1)
21
+ activesupport (4.1.4)
22
+ i18n (~> 0.6, >= 0.6.9)
23
+ json (~> 1.7, >= 1.7.7)
24
+ minitest (~> 5.1)
32
25
  thread_safe (~> 0.1)
33
- tzinfo (~> 0.3.37)
34
- atomic (1.1.14)
35
- atomic (1.1.14-java)
36
- bson (2.0.0.rc3)
37
- bson (2.0.0.rc3-java)
38
- builder (3.1.4)
39
- diff-lcs (1.2.4)
26
+ tzinfo (~> 1.1)
27
+ bson (2.3.0)
28
+ bson (2.3.0-java)
29
+ builder (3.2.2)
30
+ connection_pool (2.0.0)
31
+ diff-lcs (1.2.5)
40
32
  erubis (2.7.0)
41
- i18n (0.6.5)
42
- mime-types (2.0)
43
- mini_portile (0.5.2)
44
- minitest (4.7.5)
45
- moped (2.0.0.beta3)
46
- bson (~> 2.0.0.rc3)
47
- optionable (~> 0.1.1)
48
- multi_json (1.8.2)
49
- nokogiri (1.6.0)
50
- mini_portile (~> 0.5.0)
51
- nokogiri (1.6.0-java)
52
- mini_portile (~> 0.5.0)
53
- optionable (0.1.1)
54
- origin (1.1.0)
33
+ i18n (0.6.9)
34
+ json (1.8.1)
35
+ json (1.8.1-java)
36
+ minitest (5.4.0)
37
+ mongoid (4.0.0)
38
+ activemodel (~> 4.0)
39
+ moped (~> 2.0.0)
40
+ origin (~> 2.1)
41
+ tzinfo (>= 0.3.37)
42
+ moped (2.0.0)
43
+ bson (~> 2.2)
44
+ connection_pool (~> 2.0)
45
+ optionable (~> 0.2.0)
46
+ optionable (0.2.0)
47
+ origin (2.1.1)
55
48
  rack (1.5.2)
56
49
  rack-test (0.6.2)
57
50
  rack (>= 1.0)
58
- railties (4.0.0)
59
- actionpack (= 4.0.0)
60
- activesupport (= 4.0.0)
51
+ railties (4.1.4)
52
+ actionpack (= 4.1.4)
53
+ activesupport (= 4.1.4)
61
54
  rake (>= 0.8.7)
62
55
  thor (>= 0.18.1, < 2.0)
63
- rake (10.1.0)
64
- rspec (2.14.1)
65
- rspec-core (~> 2.14.0)
66
- rspec-expectations (~> 2.14.0)
67
- rspec-mocks (~> 2.14.0)
68
- rspec-core (2.14.7)
69
- rspec-expectations (2.14.3)
70
- diff-lcs (>= 1.1.3, < 2.0)
71
- rspec-mocks (2.14.4)
72
- rspec-rails (2.14.0)
56
+ rake (10.3.2)
57
+ rspec (3.0.0)
58
+ rspec-core (~> 3.0.0)
59
+ rspec-expectations (~> 3.0.0)
60
+ rspec-mocks (~> 3.0.0)
61
+ rspec-core (3.0.2)
62
+ rspec-support (~> 3.0.0)
63
+ rspec-expectations (3.0.2)
64
+ diff-lcs (>= 1.2.0, < 2.0)
65
+ rspec-support (~> 3.0.0)
66
+ rspec-mocks (3.0.2)
67
+ rspec-support (~> 3.0.0)
68
+ rspec-rails (3.0.1)
73
69
  actionpack (>= 3.0)
74
70
  activesupport (>= 3.0)
75
71
  railties (>= 3.0)
76
- rspec-core (~> 2.14.0)
77
- rspec-expectations (~> 2.14.0)
78
- rspec-mocks (~> 2.14.0)
79
- thor (0.18.1)
80
- thread_safe (0.1.3)
81
- atomic
82
- thread_safe (0.1.3-java)
83
- atomic
84
- tzinfo (0.3.38)
85
- xpath (2.0.0)
86
- nokogiri (~> 1.3)
72
+ rspec-core (~> 3.0.0)
73
+ rspec-expectations (~> 3.0.0)
74
+ rspec-mocks (~> 3.0.0)
75
+ rspec-support (~> 3.0.0)
76
+ rspec-support (3.0.2)
77
+ thor (0.19.1)
78
+ thread_safe (0.3.4)
79
+ thread_safe (0.3.4-java)
80
+ tzinfo (1.2.1)
81
+ thread_safe (~> 0.1)
87
82
 
88
83
  PLATFORMS
89
84
  java
@@ -93,14 +88,9 @@ DEPENDENCIES
93
88
  actionpack (>= 3.0.0)
94
89
  activesupport (>= 3.0.0)
95
90
  bundler (>= 1.0.0)
96
- mime-types
97
- mongoid (~> 4)!
98
- moped
99
- nokogiri
100
- origin
91
+ mongoid (~> 4)
101
92
  railties (>= 4)
102
93
  rake
103
94
  rspec (>= 2.0.0)
104
95
  rspec-rails (>= 2.0)
105
96
  sorted!
106
- xpath
@@ -8,9 +8,25 @@ module Sorted
8
8
 
9
9
  included do
10
10
  def self.sorted(sort, default_order = nil)
11
- sorter = ::Sorted::Parser.new(sort, default_order)
12
- quoter = ->(frag) { connection.quote_column_name(frag) }
13
- order sorter.to_sql(quoter)
11
+ order sort_sql(sort, default_order)
12
+ end
13
+
14
+ def self.resorted(sort, default_order = nil)
15
+ reorder sort_sql(sort, default_order)
16
+ end
17
+
18
+ private
19
+
20
+ def self.sort_sql(sort, default_order)
21
+ sorter(sort, default_order).to_sql(quoter)
22
+ end
23
+
24
+ def self.sorter(sort, default_order)
25
+ ::Sorted::Parser.new(sort, default_order)
26
+ end
27
+
28
+ def self.quoter
29
+ ->(frag) { connection.quote_column_name(frag) }
14
30
  end
15
31
  end
16
32
  end
@@ -21,7 +21,7 @@ module Sorted
21
21
  def to_a
22
22
  @array
23
23
  end
24
-
24
+
25
25
  def toggle_sorts
26
26
  if @order_keys == @sort_keys.take(@order_keys.size)
27
27
  @order_keys.select do |order|
@@ -1,3 +1,3 @@
1
1
  module Sorted
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -16,6 +16,7 @@ if defined? ActiveRecord
16
16
 
17
17
  it "should integrate with ActiveRecord::Base" do
18
18
  SortedActiveRecordTest.should respond_to(:sorted)
19
+ SortedActiveRecordTest.should respond_to(:resorted)
19
20
  end
20
21
 
21
22
  it "should play nice with other scopes" do
@@ -23,5 +24,10 @@ if defined? ActiveRecord
23
24
  SortedActiveRecordTest.where(:name => 'bob').page.sorted(nil, 'name ASC').to_sql.should == sql
24
25
  SortedActiveRecordTest.page.sorted(nil, 'name ASC').where(:name => 'bob').to_sql.should == sql
25
26
  end
27
+
28
+ it "should override the provided order" do
29
+ sql = "SELECT \"sorted_active_record_tests\".* FROM \"sorted_active_record_tests\" WHERE \"sorted_active_record_tests\".\"name\" = 'bob' ORDER BY \"name\" ASC LIMIT 50"
30
+ SortedActiveRecordTest.page.where(:name => 'bob').order(:id).sorted(nil, 'name DESC').resorted(nil, 'name ASC').to_sql.should == sql
31
+ end
26
32
  end
27
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorted
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rufus Post
@@ -9,76 +9,76 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-14 00:00:00.000000000 Z
12
+ date: 2014-08-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: bundler
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: 1.0.0
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: 1.0.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: 2.0.0
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: 2.0.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: activesupport
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: 3.0.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: 3.0.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: actionpack
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '>='
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
76
  version: 3.0.0
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: 3.0.0
84
84
  description: Allows you to sort large datasets over many pages, without losing state.
@@ -89,9 +89,9 @@ executables: []
89
89
  extensions: []
90
90
  extra_rdoc_files: []
91
91
  files:
92
- - .gitignore
93
- - .rspec
94
- - .travis.yml
92
+ - ".gitignore"
93
+ - ".rspec"
94
+ - ".travis.yml"
95
95
  - Gemfile
96
96
  - LICENSE
97
97
  - README.md
@@ -125,17 +125,17 @@ require_paths:
125
125
  - lib
126
126
  required_ruby_version: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - '>='
128
+ - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  requirements:
133
- - - '>='
133
+ - - ">="
134
134
  - !ruby/object:Gem::Version
135
135
  version: 1.3.6
136
136
  requirements: []
137
137
  rubyforge_project: sorted
138
- rubygems_version: 2.0.0
138
+ rubygems_version: 2.2.0
139
139
  signing_key:
140
140
  specification_version: 4
141
141
  summary: Data sorting library