sunspot-null_result 0.1.0 → 0.2.0

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: 522194f37eda68fdd70d0fc7e78c8032041e5d1e
4
- data.tar.gz: 1f15a77e1fb20f036af4fd9ac10c09283ddf2c1d
3
+ metadata.gz: 00214e1bc2fb4fd5033831c647c0be5d4302b6b1
4
+ data.tar.gz: 8d15d147a7e3024eb92e98737bc8d1e8d356d1d3
5
5
  SHA512:
6
- metadata.gz: 28d335ae27055ecabfbfe3de64ab5b6ea1cd93111e4104df36656bb2ad264b8d7f1a22ba1a8e0cdcae1cb35b23cd37ed78ff46d122561aa94a041b98added1c0
7
- data.tar.gz: 86fc219514fb27d947ab701b21d940874af44dadc246d2f42025f25198911cb639660acd5192c649cf3c5a0a2109a2c87a504f899177073892a450c4c22d4b06
6
+ metadata.gz: 6cb5a1798107025c66a90c347426b0b5f59d80bb5e4678922ee567c77adbd488bec31e53dddf31366ae6a0348152c66c9e223f88ed7dd40ae546ae3654944e01
7
+ data.tar.gz: 6fdf0660422525e586c62b7dec83dc885593a41c268c9576c352903ac7926da34f4b03cc9a4869e0f3531812e13e07659dfc887c061058a64924ba09f6bff3d9
data/README.md CHANGED
@@ -64,6 +64,9 @@ end
64
64
 
65
65
  ### HEAD (not yet released)
66
66
 
67
+ ### v0.2.0
68
+ * Allow setting of pagination options and calculate dependent values accordingly
69
+
67
70
  ### v0.1.0
68
71
  * Initial working release
69
72
 
@@ -1,5 +1,5 @@
1
1
  module Sunspot
2
2
  class NullResult
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -2,36 +2,39 @@ require "sunspot/null_result/version"
2
2
 
3
3
  module Sunspot
4
4
  class NullResult
5
- attr_reader :collection
5
+ attr_reader :collection, :options
6
6
 
7
- def initialize(collection = [])
8
- @collection = collection
7
+ def initialize(*collection, **options)
8
+ @collection = collection.flatten
9
+ @options = options
9
10
  end
10
11
 
11
12
  # Implements the interface of
12
13
  # https://github.com/sunspot/sunspot/blob/master/sunspot_rails/lib/sunspot/rails/stub_session_proxy.rb
13
14
  class PaginatedNullArray < Array
15
+ attr_reader :current_page, :per_page
14
16
 
15
- alias total_count size
16
-
17
- def current_page
18
- 1
17
+ def initialize(collection, current_page: 1, per_page: 1)
18
+ super(collection)
19
+ @current_page = current_page
20
+ @per_page = per_page
19
21
  end
20
22
 
23
+ alias total_count size
24
+ alias limit_value per_page
25
+
21
26
  def total_pages
22
- 1
27
+ [(size/per_page.to_f).ceil, 1].max
23
28
  end
24
29
  alias num_pages total_pages
25
30
 
26
- def per_page
27
- 1
28
- end
29
- alias limit_value per_page
30
31
 
31
32
  def previous_page
33
+ (current_page-1) if current_page > 1
32
34
  end
33
35
 
34
36
  def next_page
37
+ (current_page+1) if total_pages > current_page
35
38
  end
36
39
 
37
40
  def first_page?
@@ -52,11 +55,11 @@ module Sunspot
52
55
  end
53
56
 
54
57
  def hits
55
- PaginatedNullArray.new(collection)
58
+ PaginatedNullArray.new(collection, options)
56
59
  end
57
60
 
58
61
  def results
59
- PaginatedNullArray.new(collection)
62
+ PaginatedNullArray.new(collection, options)
60
63
  end
61
64
 
62
65
  end
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.required_ruby_version = ">= 2.1.0"
23
+
22
24
  spec.add_development_dependency "bundler", "~> 1.10"
23
25
  spec.add_development_dependency "rake", "~> 10.0"
24
26
  spec.add_development_dependency "rspec"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunspot-null_result
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Zimmermann
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-31 00:00:00.000000000 Z
11
+ date: 2015-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -85,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: '0'
88
+ version: 2.1.0
89
89
  required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - ">="