neo4j-will_paginate 0.1.2-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ *.gem
2
+ *.swp
3
+ db/
4
+ bin/
5
+ .bundle
6
+ Gemfile.lock
7
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
@@ -0,0 +1,5 @@
1
+ rvm:
2
+ - jruby
3
+ env:
4
+ - JRUBY_OPTS=--1.8
5
+ - JRUBY_OPTS=--1.9
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in neo4j-will_paginate.gemspec
4
+ gemspec
@@ -0,0 +1,39 @@
1
+ Integration for Neo4j.rb and will_paginate
2
+ ============================================
3
+
4
+ This gem is just a simple integration of will_paginate and neo4j.
5
+ [![Build Status](https://secure.travis-ci.org/neo4j-will_paginate/its.png)](http://travis-ci.org/dnagir/neo4j-will_paginate)
6
+
7
+ Installation
8
+ ==================
9
+
10
+ 1. Add `neo4j-will_paginate` to your `Gemfile`.
11
+ 2. `require 'neo4j-will_paginate'` somewhere from your code.
12
+
13
+
14
+
15
+ Using
16
+ ==================
17
+
18
+ Please see the [will_paginate](https://github.com/mislav/will_paginate)
19
+ and [neo4j.rb](https://github.com/andreasronge/neo4j) for details.
20
+
21
+ But here is simple example:
22
+
23
+
24
+ ```ruby
25
+ # Probably in the Rails controller:
26
+
27
+ def index
28
+ @people = Person.all.paginate(:page => 2, :per_page => 20) # :per_page is optional
29
+ end
30
+
31
+ # Then in the view:
32
+ paginate @people
33
+
34
+ ```
35
+
36
+ License
37
+ =====================
38
+
39
+ MIT by Dmytrii Nagirniak and Andreas Ronge
@@ -0,0 +1,7 @@
1
+ srand # JRuby bug
2
+ require "bundler/gem_tasks"
3
+ require "rspec/core/rake_task"
4
+
5
+ RSpec::Core::RakeTask.new("spec")
6
+
7
+ task :default => 'spec'
@@ -0,0 +1,53 @@
1
+ require "neo4j-will_paginate/version"
2
+ require 'will_paginate/collection'
3
+ require 'neo4j'
4
+
5
+
6
+ module Neo4j
7
+ module WillPaginate
8
+
9
+ # The module provides the common interface for the pagination on any Enumerable class.
10
+ # By including the module, {Neo4j::WillPaginate::Pagination#paginate} method will be available.
11
+ module Pagination
12
+ include ::WillPaginate::CollectionMethods
13
+
14
+
15
+ # Paginates the {Enumerable} and returns {::WillPaginate::Collection} instance.
16
+ #
17
+ # @param [Hash] options a hash of options for the pagination.
18
+ # @option options [Symbol] :page current page for the pagination (defualts to 1).
19
+ # @option options [Symbol] :per_page numer of items per page (defaults to {::WillPaginate.per_page}).
20
+ # Aliases are `:per`, `:limit`.
21
+ #
22
+ # @example Paginate on a relationship:
23
+ # person.friends.paginate(:page => 5, :per_page => 10)
24
+ #
25
+ # @example Paginate the search results:
26
+ # Person.all(:conditions => "name: Dmytrii*").paginate(:page => 5, :per_page => 10)
27
+ def paginate(options={})
28
+ page = (options[:page] || 1).to_i
29
+ per_page = (options[:per] || options[:per_page] || options[:limit] || WillPaginate.per_page).to_i
30
+ ::WillPaginate::Collection.create(page, per_page) do |pager|
31
+ res = ::Neo4j::Paginated.create_from(self, page, per_page)
32
+ pager.replace res.to_a
33
+ pager.total_entries = res.total unless pager.total_entries
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+
43
+ [
44
+ Neo4j::Core::Traversal::Traverser,
45
+ Neo4j::Core::Index::LuceneQuery,
46
+ Neo4j::Core::Cypher::ResultWrapper,
47
+ Neo4j::Core::Traversal::CypherQuery,
48
+ Neo4j::Wrapper::HasN::Nodes,
49
+ Neo4j::Rails::Relationships::NodesDSL,
50
+ Neo4j::Rails::Relationships::RelsDSL
51
+ ].each do |m|
52
+ m.send :include, Neo4j::WillPaginate::Pagination
53
+ end
@@ -0,0 +1,5 @@
1
+ module Neo4j
2
+ module WillPaginate
3
+ VERSION = "0.1.2"
4
+ end
5
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "neo4j-will_paginate/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "neo4j-will_paginate"
7
+ s.version = Neo4j::WillPaginate::VERSION
8
+ s.authors = ["Dmytrii Nagirniak", "Andreas Ronge"]
9
+ s.email = ["dnagir@gmail.com", "andreas.ronge@gmail.com"]
10
+ s.homepage = "https://github.com/dnagir/neo4j-will_paginate"
11
+ s.summary = %q{Integration between neo4j.rb and will_paginate.}
12
+ s.description = s.summary
13
+
14
+ s.rubyforge_project = "neo4j-will_paginate"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.platform = 'java'
22
+
23
+ s.add_development_dependency "rspec"
24
+ s.add_runtime_dependency "activesupport", "~> 3.0"
25
+ s.add_runtime_dependency "will_paginate", "~> 3.0"
26
+ s.add_runtime_dependency "neo4j", ">= 2.0.0.alpha.4"
27
+ end
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+
3
+ module Specs
4
+
5
+ class Person < ::Neo4j::Rails::Model
6
+ property :name, :default => 'x'
7
+ index :name
8
+ has_n :friends
9
+ end
10
+
11
+ describe Neo4j::WillPaginate::Pagination do
12
+ subject { source.paginate(:page => 2, :per_page => 3) }
13
+
14
+ def self.should_be_paginated
15
+ its(:size) { should == 3 }
16
+ its(:current_page) { should == 2 }
17
+ its(:per_page) { should == 3 }
18
+ its(:total_entries) { should == 10 }
19
+ its(:offset) { should == 3 }
20
+ end
21
+
22
+ context ::Neo4j::Core::Traversal::Traverser do
23
+ let(:source) { Person.all }
24
+ before { 10.times { Person.create } }
25
+ should_be_paginated
26
+ end
27
+
28
+ context ::Neo4j::Core::Cypher::ResultWrapper do
29
+ let(:source) { Neo4j._query(Person.all.query.to_s) }
30
+ before { 10.times { Person.create(:name => 'x') } }
31
+ it do
32
+ pending "does not work yet"
33
+ should_be_paginated
34
+ end
35
+ end
36
+
37
+ context ::Neo4j::Core::Traversal::CypherQuery do
38
+ let(:source) { Person.all.query }
39
+ before { 10.times { Person.create(:name => 'x') } }
40
+ should_be_paginated
41
+ end
42
+
43
+ context ::Neo4j::Core::Index::LuceneQuery do
44
+ let(:source) { Person.all(:conditions => 'name: *') }
45
+ before { 10.times { Person.create(:name => 'x') } }
46
+ should_be_paginated
47
+ end
48
+
49
+ describe "models & rels" do
50
+ let(:source) { he.friends }
51
+ let(:he) { Person.create }
52
+ before { 10.times { he.friends << Person.create }; he.save! }
53
+
54
+ context ::Neo4j::Rails::Relationships::NodesDSL do
55
+ should_be_paginated
56
+ end
57
+
58
+ context ::Neo4j::Rails::Relationships::RelsDSL do
59
+ subject { source.paginate(:page => "2", :per => "3") } # Just a bit different set of options
60
+ let(:source) { he.rels(:outgoing, :friends) }
61
+ should_be_paginated
62
+ end
63
+ end
64
+
65
+ end
66
+
67
+ end
@@ -0,0 +1,39 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper.rb"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+ end
12
+
13
+
14
+ require 'neo4j-will_paginate'
15
+
16
+
17
+ # neo4j Specs clean-up
18
+ require 'fileutils'
19
+
20
+ def rm_db_storage!
21
+ FileUtils.rm_rf Neo4j::Config[:storage_path]
22
+ raise "Can't delete db" if File.exist?(Neo4j::Config[:storage_path])
23
+ end
24
+
25
+ RSpec.configure do |config|
26
+ $spec_counter = 0
27
+
28
+ config.before(:all) do
29
+ rm_db_storage! unless Neo4j.running?
30
+ end
31
+
32
+ config.after(:each) do
33
+ Neo4j::Rails::Model.close_lucene_connections
34
+ Neo4j::Transaction.run do
35
+ Neo4j.threadlocal_ref_node = Neo4j::Node.new :name => "ref_#{$spec_counter}"
36
+ $spec_counter += 1
37
+ end
38
+ end
39
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: neo4j-will_paginate
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.2
6
+ platform: java
7
+ authors:
8
+ - Dmytrii Nagirniak
9
+ - Andreas Ronge
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2012-08-21 00:00:00 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rspec
18
+ version_requirements: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ requirement: *id001
25
+ prerelease: false
26
+ type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: "3.0"
35
+ requirement: *id002
36
+ prerelease: false
37
+ type: :runtime
38
+ - !ruby/object:Gem::Dependency
39
+ name: will_paginate
40
+ version_requirements: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: "3.0"
46
+ requirement: *id003
47
+ prerelease: false
48
+ type: :runtime
49
+ - !ruby/object:Gem::Dependency
50
+ name: neo4j
51
+ version_requirements: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 2.0.0.alpha.4
57
+ requirement: *id004
58
+ prerelease: false
59
+ type: :runtime
60
+ description: Integration between neo4j.rb and will_paginate.
61
+ email:
62
+ - dnagir@gmail.com
63
+ - andreas.ronge@gmail.com
64
+ executables: []
65
+
66
+ extensions: []
67
+
68
+ extra_rdoc_files: []
69
+
70
+ files:
71
+ - .gitignore
72
+ - .rspec
73
+ - .travis.yml
74
+ - Gemfile
75
+ - README.md
76
+ - Rakefile
77
+ - lib/neo4j-will_paginate.rb
78
+ - lib/neo4j-will_paginate/version.rb
79
+ - neo4j-will_paginate.gemspec
80
+ - spec/neo4j-will_paginate_spec.rb
81
+ - spec/spec_helper.rb
82
+ homepage: https://github.com/dnagir/neo4j-will_paginate
83
+ licenses: []
84
+
85
+ post_install_message:
86
+ rdoc_options: []
87
+
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ hash: 2
96
+ segments:
97
+ - 0
98
+ version: "0"
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 2
105
+ segments:
106
+ - 0
107
+ version: "0"
108
+ requirements: []
109
+
110
+ rubyforge_project: neo4j-will_paginate
111
+ rubygems_version: 1.8.15
112
+ signing_key:
113
+ specification_version: 3
114
+ summary: Integration between neo4j.rb and will_paginate.
115
+ test_files:
116
+ - spec/neo4j-will_paginate_spec.rb
117
+ - spec/spec_helper.rb