load_more 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +28 -1
- data/lib/load_more/version.rb +1 -1
- data/lib/load_more.rb +25 -2
- metadata +1 -2
- data/lib/tasks/load_more_tasks.rake +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e63629829b740f9fc5a8a872349ce0e5052c882c
|
4
|
+
data.tar.gz: d3ad74aab0c7ecf587c6d452a64d90cd375bd5df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cac9267ef75ca044c32d4920c6ebc9686cf136d56ed68d83cc23c79d0f11858a96c2bde431ac03a400e8ab1f30f1cb81c659b23953d43eb137374b816c18cd5d
|
7
|
+
data.tar.gz: e2cef122a3d4c16c758f4bcdf10e672024c92990d9ea90c6215629b379b07c4ddacabdd90551baf9ed250adfdbbe42e541838c3ba158a6b99517d8c3416a6c4f
|
data/README.rdoc
CHANGED
@@ -1,3 +1,30 @@
|
|
1
1
|
= LoadMore
|
2
|
+
A simple solution for performing load more queries with ActiveRecord
|
3
|
+
|
4
|
+
== Installation
|
5
|
+
In your Gemfile:
|
6
|
+
gem 'load_more'
|
7
|
+
Then run
|
8
|
+
bundle install
|
9
|
+
|
10
|
+
== Usage
|
11
|
+
In your model:
|
12
|
+
class Article < ActiveRecord::Base
|
13
|
+
acts_as_load_more
|
14
|
+
self.per_load = 15
|
15
|
+
end
|
16
|
+
The default 'per_load' value is 10.
|
17
|
+
|
18
|
+
Then you can use
|
19
|
+
>> Article.load_more(last_load: 99)
|
20
|
+
or
|
21
|
+
>> Article.load_more.last_load(99)
|
22
|
+
|
23
|
+
You can also customize the per_load value:
|
24
|
+
>> Article.load_more(per_load: 20, last_load: 99)
|
25
|
+
|
26
|
+
By default it use id as the sort column.
|
27
|
+
|
28
|
+
== License
|
29
|
+
This project rocks and uses MIT-LICENSE.
|
2
30
|
|
3
|
-
This project rocks and uses MIT-LICENSE.
|
data/lib/load_more/version.rb
CHANGED
data/lib/load_more.rb
CHANGED
@@ -1,6 +1,30 @@
|
|
1
1
|
require 'active_record' unless defined? ActiveRecord
|
2
2
|
|
3
3
|
module LoadMore
|
4
|
+
module ActiveRecord
|
5
|
+
@@per_load = 10
|
6
|
+
|
7
|
+
def per_load=(limit)
|
8
|
+
@@per_load = limit
|
9
|
+
end
|
10
|
+
|
11
|
+
def per_load
|
12
|
+
@@per_load
|
13
|
+
end
|
14
|
+
|
15
|
+
def load_more(options = {})
|
16
|
+
per_load = options.delete(:per_load) || self.per_load
|
17
|
+
last_load_id = options.delete(:last_load)
|
18
|
+
rel = order(id: :desc).limit(per_load)
|
19
|
+
rel = rel.last_load(last_load_id) if last_load_id
|
20
|
+
rel
|
21
|
+
end
|
22
|
+
|
23
|
+
def last_load(id)
|
24
|
+
where("id < ?", id)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
4
28
|
module ActsAsLoadMore
|
5
29
|
extend ActiveSupport::Concern
|
6
30
|
|
@@ -9,8 +33,7 @@ module LoadMore
|
|
9
33
|
|
10
34
|
module ClassMethods
|
11
35
|
def acts_as_load_more
|
12
|
-
|
13
|
-
scope :last_load, ->(id) { where("id < ?", id) }
|
36
|
+
extend LoadMore::ActiveRecord
|
14
37
|
end
|
15
38
|
end
|
16
39
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: load_more
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jiajia Wang
|
@@ -77,7 +77,6 @@ files:
|
|
77
77
|
- Rakefile
|
78
78
|
- lib/load_more.rb
|
79
79
|
- lib/load_more/version.rb
|
80
|
-
- lib/tasks/load_more_tasks.rake
|
81
80
|
homepage: https://github.com/jiajiawang/load_more
|
82
81
|
licenses:
|
83
82
|
- MIT
|