yap 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/yap/filter.rb +4 -1
  4. data/lib/yap.rb +6 -6
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6b0e9e0e3dc3083f3d0b547b73c9798aea4df38
4
- data.tar.gz: cb97d4f95634d81f5d5f9a7fd5bf15dbce071fff
3
+ metadata.gz: 25cfbc9977c71d10fc1a33ab813eff876c633401
4
+ data.tar.gz: ab538d4945cd053de7db5072e5238a6e9655cf48
5
5
  SHA512:
6
- metadata.gz: d10b61aed2e0f9757ca7b08006b4b60640a661c052f9d7dcbad5bd3bde800393f488f92ecd9add039bff0a574d44d9ee5af1485979f51ca003dd8c1504170235
7
- data.tar.gz: fb430be1608425b2b82b06029c033812c987f1974cd652ff6401b5371f1015d889e89d52ea4727e66c5abe49fa1d570d8f4525257ed65ccf85e532882a55dc33
6
+ metadata.gz: 94eb394ae4b57e7fd28adcc819501095337be522cec96b9982f909c6c1d79e30cfe538e8b134cf0fb90ee6e8eab366a23df3010222a7ed57a16bb27ed2ac0661
7
+ data.tar.gz: 0f6a6fe7afd9e646253809a99de8b926804f2550c40ee4236631dbcc2bafc4560866f8ca87c481323029b643b9a69046fbe38a505d762aceadfe689e6457200a
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # yap v0.3.2
1
+ # yap v0.3.3
2
2
 
3
3
  Yet another paginator for Ruby on Rails, which adds a `paginate` scope to your ActiveRecords.
4
4
 
data/lib/yap/filter.rb CHANGED
@@ -15,7 +15,10 @@ module Yap
15
15
  match = :where
16
16
  end
17
17
 
18
- if value =~ /(.+)\.\.(.+)/
18
+ case value
19
+ when /(.+)\.{3}(.+)/
20
+ value = $1...$2
21
+ when /(.+)\.{2}(.+)/
19
22
  value = $1..$2
20
23
  else
21
24
  value = value.downcase == 'null' ? nil : value
data/lib/yap.rb CHANGED
@@ -26,7 +26,7 @@ module Yap
26
26
  include Filterable
27
27
 
28
28
  DEFAULTS = Struct.new(:page, :per_page, :sort, :direction, :disable_warnings)
29
- .new(1, 10, 'id', 'ASC', false)
29
+ .new(1, 10, :id, :asc, false)
30
30
 
31
31
  def self.configure
32
32
  raise ArgumentError, 'No block given.' unless block_given?
@@ -50,8 +50,8 @@ module Yap
50
50
  # @param [Hash] The parameters used for pagination (:page, :per_page, :sort, :direction)
51
51
  #
52
52
  scope :paginate, -> (params = {}) {
53
- page, per_page, column, direction = extract_pagination_params(params)
54
- filter(params[:filter]).limit(per_page).offset((page-1)*per_page).order("#{column} #{direction}")
53
+ page, per_page, order_by = extract_pagination_params(params)
54
+ filter(params[:filter]).limit(per_page).offset((page-1)*per_page).order(order_by)
55
55
  }
56
56
 
57
57
  private
@@ -62,7 +62,7 @@ module Yap
62
62
  sort = extract_column(params[:sort])
63
63
  direction = extract_direction(params[:direction])
64
64
 
65
- return page, per_page, sort, direction
65
+ return page, per_page, (sort =~ /\./ ? "#{sort} #{direction}" : { sort => direction })
66
66
  end
67
67
 
68
68
  def self.extract_number(number, default)
@@ -86,8 +86,8 @@ module Yap
86
86
 
87
87
  def self.extract_direction(direction)
88
88
  direction ||= DEFAULTS.direction
89
- dir = (direction).to_s.upcase
90
- raise PaginationError.new("'#{direction}' is not a valid direction. Use 'asc' or 'desc'.") unless %w[ASC DESC].include? dir
89
+ dir = (direction).to_sym.downcase
90
+ raise PaginationError.new("'#{direction}' is not a valid direction. Use 'asc' or 'desc'.") unless [:asc, :desc].include? dir
91
91
  dir
92
92
  end
93
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Finn Glöe
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.1'
19
+ version: 4.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.1'
26
+ version: 4.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sqlite3
29
29
  requirement: !ruby/object:Gem::Requirement