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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9935bc5ee8ebe544a9afc014d5386acae85cd59c
4
- data.tar.gz: f9eabc3a2d9e587a99e4a29b743792b3b49de41d
3
+ metadata.gz: e63629829b740f9fc5a8a872349ce0e5052c882c
4
+ data.tar.gz: d3ad74aab0c7ecf587c6d452a64d90cd375bd5df
5
5
  SHA512:
6
- metadata.gz: a3ffe57cbbeeeb6864ead9a87baaf1d46d8efbce8450ad7297328a3f9025c8b14b60c4ba16ad6e4f987e971f46e229ba67d4f1364d3600a2711d59a9bd6b3af4
7
- data.tar.gz: eac82a04eb571a579dfcf6b90c37d92a929af57ad7b9bfd982bb47dedc51e65164c9fc71599897ac9bc175e9a1983486092e67e483554bd7a47803d8fcab8bce
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.
@@ -1,3 +1,3 @@
1
1
  module LoadMore
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
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
- scope :load_more, -> { order(id: :desc).limit(10) }
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.1
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
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :load_more do
3
- # # Task goes here
4
- # end