nazrin 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c48ed17749fd3c28a0f1ebd4315b47668bce58d
4
- data.tar.gz: 2ce59a71ce80485057764d0972dafde18fd817d8
3
+ metadata.gz: 4ee0cd5215a23ea2f245801bf4802248c2ebca11
4
+ data.tar.gz: bac5d1685ff2d1590cfc18780faecd869c382e58
5
5
  SHA512:
6
- metadata.gz: 80bb877b98842567bee0dc6c265f9543fda945a27facd3666fd4d021de5df619362098fbc638b952c7f27fafa67354ea91eeaf5477c5aa5bbc61b15ab5028acb
7
- data.tar.gz: 7d5834c17d9df1d79dfa804eff2f7077a1efa597fb00113a22c1c403394ef0d695b940e84379fc869c80b339a0c3e9b87f2dfa1cc1a6f7a78bcabb44a63126fa
6
+ metadata.gz: 9348020250c407fc833f22a39446bef81965cf3cbe26de457b18fd5e1d07ff73fcbeada5120b0c6e120e1bc369debb2c5e31475e03708ca98b47585d8a76db1f
7
+ data.tar.gz: 92c0a290d2e5631eb24dc1b7cd74ed52ba43dd7f5456174648552c584420a2f626f94300adc27155cf120d4b9d3f492b66bee76e4feda08acdd55d8f3e776f06
data/README.md CHANGED
@@ -31,7 +31,7 @@ Or install it yourself as:
31
31
  ```ruby
32
32
  $ bundle exec rails g nazrin:config
33
33
 
34
- Nazrin.config do |config|
34
+ Nazrin.configure do |config|
35
35
  config.debug_mode = false
36
36
  config.search_endpoint = ''
37
37
  config.document_endpoint = ''
@@ -44,7 +44,7 @@ end
44
44
  ```
45
45
 
46
46
  ```ruby
47
- class Post
47
+ class Post < ActiveRecord::Base
48
48
  include Nazrin::ActiveRecord::Searchable
49
49
 
50
50
  searchable do
@@ -52,13 +52,14 @@ class Post
52
52
  field(:created_at) { created_at.utc.iso8601 }
53
53
  end
54
54
 
55
- after_create :update_in_index
55
+ after_create :add_to_index
56
+ after_update :update_in_index
56
57
  after_destroy :delete_from_index
57
58
  end
58
59
  ```
59
60
 
60
61
  ```ruby
61
- Post.search.size(1).start(0).query("(and 'content')").query_parser('structured').execute
62
+ Post.search(where: :foo, includes: :bar).size(1).start(0).query("(and 'content')").query_parser('structured').execute
62
63
  => [#<Post id: 1, content: "content">]
63
64
  ```
64
65
 
@@ -5,6 +5,6 @@ Nazrin.configure do |config|
5
5
  config.region = ''
6
6
  config.access_key_id = ''
7
7
  config.secret_access_key = ''
8
- # currently support kaminari
9
- # config.pagination = 'kaminari'
8
+ # currently support 'kaminari', 'will_paginate' or 'nazrin'
9
+ config.pagination = 'kaminari'
10
10
  end
data/lib/nazrin.rb CHANGED
@@ -6,5 +6,6 @@ require 'nazrin/active_record/data_accessor'
6
6
  require 'nazrin/config'
7
7
  require 'nazrin/search_client'
8
8
  require 'nazrin/document_client'
9
+ require 'nazrin/pagination_generator'
9
10
  require 'nazrin/paginated_array'
10
11
  require 'nazrin/version'
@@ -17,7 +17,7 @@ module Nazrin
17
17
  if @client.parameters[:size] && @client.parameters[:start]
18
18
  round_correct_page
19
19
 
20
- Nazrin.paginated_array(
20
+ Nazrin::PaginationGenerator.generate(
21
21
  collections,
22
22
  current_page: @current_page,
23
23
  per_page: @client.parameters[:size],
@@ -2,11 +2,11 @@ module Nazrin
2
2
  class PaginatedArray < Array
3
3
  attr_reader :current_page, :per_page, :total_count
4
4
 
5
- def initialize(collections, page, per_page, total_count)
5
+ def initialize(collection, page, per_page, total_count)
6
6
  @current_page = page
7
7
  @per_page = per_page
8
8
  @total_count = total_count
9
- replace collections
9
+ replace collection
10
10
  end
11
11
 
12
12
  # first page of the collections?
@@ -39,25 +39,4 @@ module Nazrin
39
39
  current_page > total_pages
40
40
  end
41
41
  end
42
-
43
- # create paginated collection
44
- def self.paginated_array(collections, options = {})
45
- if Nazrin.config.pagination == 'kaminari'
46
- begin
47
- require 'kaminari'
48
- rescue LoadError
49
- abort "Missing dependency 'kaminari' for pagination"
50
- end
51
- Kaminari.config.max_pages = options[:last_page]
52
- Kaminari.paginate_array(collections, total_count: options[:total_count])
53
- .page(options[:current_page])
54
- .per(options[:per_page])
55
- else
56
- Nazrin::PaginatedArray.new(
57
- collections,
58
- options[:current_page],
59
- options[:per_page],
60
- options[:total_count])
61
- end
62
- end
63
42
  end
@@ -0,0 +1,20 @@
1
+ module Nazrin
2
+ module PaginationGenerator
3
+ SUPPORTED_PAGINATION_GEMS = %w(nazrin kaminari will_paginate)
4
+
5
+ class << self
6
+ def generate(collection, options = {})
7
+ abort "#{Nazrin.config.pagination} is not supported gem of pagination" unless SUPPORTED_PAGINATION_GEMS.include?(Nazrin.config.pagination.to_s)
8
+
9
+ retreive_generator_module.call(collection, options)
10
+ end
11
+
12
+ private
13
+
14
+ def retreive_generator_module
15
+ require "nazrin/pagination_generator/#{Nazrin.config.pagination}_generator"
16
+ Nazrin::PaginationGenerator.const_get("#{Nazrin.config.pagination.to_s.camelize}Generator")
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ module Nazrin
2
+ module PaginationGenerator
3
+ module KaminariGenerator
4
+ def self.call(collection, options)
5
+ begin
6
+ require 'kaminari'
7
+ rescue LoadError
8
+ abort "Missing dependency 'kaminari' for pagination"
9
+ end
10
+ Kaminari.config.max_pages = options[:last_page]
11
+ Kaminari.paginate_array(collection, total_count: options[:total_count])
12
+ .page(options[:current_page])
13
+ .per(options[:per_page])
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module Nazrin
2
+ module PaginationGenerator
3
+ module NazrinGenerator
4
+ def self.call(collection, options)
5
+ Nazrin::PaginatedArray.new(
6
+ collection,
7
+ options[:current_page],
8
+ options[:per_page],
9
+ options[:total_count])
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module Nazrin
2
+ module PaginationGenerator
3
+ module WillPaginateGenerator
4
+ def self.call(collection, options)
5
+ begin
6
+ require 'will_paginate/collection'
7
+ rescue LoadError
8
+ abort "Missing dependency 'will_paginate' for pagination"
9
+ end
10
+
11
+ WillPaginate::Collection.create(options[:current_page], options[:per_page], options[:total_count]) do |pager|
12
+ pager.replace collection[pager.offset, pager.per_page].to_a
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Nazrin
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
data/nazrin.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'rake', '~> 10.0'
24
24
  spec.add_development_dependency 'rubocop'
25
25
  spec.add_development_dependency 'kaminari'
26
+ spec.add_development_dependency 'will_paginate'
26
27
  spec.add_development_dependency 'rspec'
27
28
  spec.add_development_dependency 'coveralls'
28
29
  spec.add_development_dependency 'sqlite3'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nazrin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomohiro Suwa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-05 00:00:00.000000000 Z
11
+ date: 2015-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: will_paginate
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +188,10 @@ files:
174
188
  - lib/nazrin/config.rb
175
189
  - lib/nazrin/document_client.rb
176
190
  - lib/nazrin/paginated_array.rb
191
+ - lib/nazrin/pagination_generator.rb
192
+ - lib/nazrin/pagination_generator/kaminari_generator.rb
193
+ - lib/nazrin/pagination_generator/nazrin_generator.rb
194
+ - lib/nazrin/pagination_generator/will_paginate_generator.rb
177
195
  - lib/nazrin/search_client.rb
178
196
  - lib/nazrin/version.rb
179
197
  - nazrin.gemspec