neo4j-rspec 0.2.0 → 0.2.1

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: 653bc759e3464273407eb45f963541e3f71734a6
4
- data.tar.gz: cb46b0e8a9b396fb2a43d1761ffde2ee0d1df933
3
+ metadata.gz: c07494702e7a337029d2e268c8d1b2d909d56a3e
4
+ data.tar.gz: 82fef422106a2c7debb6bdf45297b54354016ce1
5
5
  SHA512:
6
- metadata.gz: b7e99b9d4d8f34ea64dce43152d1cb27d46b140f8b7ba41c77c77e2366f2c8695bad34977e05cadf2c24049f6460a292dcaf6d4bcc56d00d99d73635f5d676da
7
- data.tar.gz: 800c6fd90a0b1bb4c46f330c6fc90cfe71936fd2bb3ba3245d144d3ecab00cca3fd15b219fcbda4322c2ff89ac9df943a7dacca2b1c447cf5acd57ba38ec32de
6
+ metadata.gz: b5a523760325d6bd1eb2f1f82977f03ac7ad466906836dc39b364782231b3ae64da9b76ac13056dccb493163571a270a88604c0c43e1a4c6a51fa5558131d67b
7
+ data.tar.gz: 299ce90f0eb799ab8ce27a093339658e10dcf0603a98ce087499e89d6d758c73f0574aa57914ba99572f72bd45cece894168d8f7e39fd7a8f1913d8d2cc535ca
data/.travis.yml CHANGED
@@ -5,3 +5,10 @@ sudo: false
5
5
  rvm:
6
6
  - 2.2.0
7
7
  - 2.3.0
8
+ gemfile: travis.gemfile
9
+ env:
10
+ global:
11
+ - TRAVISCI=1
12
+ matrix:
13
+ - NEO4J_VERSION=6.0.0
14
+ - NEO4J_VERSION=7.0.0
data/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  This gem contains of several testing one-liners for [neo4j](https://github.com/neo4jrb/neo4j) gem.
4
4
 
5
- Current version (0.2.x) supports 7th version of neo4jrb gem. If you use 6th version of neo4jrb gem, try 0.1.2 version.
6
-
7
5
  ## Install
8
6
 
9
7
  Add line into your Gemfile:
@@ -23,50 +21,36 @@ gem install neo4j-rspec
23
21
 
24
22
  - Properties
25
23
 
26
- ```ruby
27
24
  it { is_expected.to define_property :general }
28
- it { is_expected.to define_property :string, String }
29
- it { is_expected.to define_property :boolean, Neo4j::Shared::Boolean }
30
- ```
25
+ it { is_expected.to define_property :string, :String }
26
+ it { is_expected.to define_property :boolean, :Boolean }
31
27
  - Relationships
32
28
 
33
- ```ruby
34
29
  it { is_expected.to have_many(:comments) }
35
30
  it { is_expected.to have_many(:comments).with_direction(:in) }
36
31
  it { is_expected.to have_many(:comments).with_direction(:in).with_origin(:post) }
37
32
  it { is_expected.to have_many(:written_things).with_direction(:in).without_type.with_model_class([:Post, :Comment]) }
38
- ```
39
33
  - Constraints
40
34
 
41
- ```ruby
42
35
  it { is_expected.to define_constraint :name, :unique }
43
- ```
44
36
  - Indexes
45
37
 
46
- ```ruby
47
38
  it { is_expected.to define_index(:index_name) }
48
- ```
49
39
  - Tracking
50
40
 
51
- ```ruby
52
41
  it { is_expected.to track_creations } # `created_at`
53
42
  it { is_expected.to track_modifications } # `updated_at`
54
- ```
55
43
 
56
44
 
57
45
  ### ActiveRel matchers:
58
46
 
59
47
  - Directions
60
48
 
61
- ```ruby
62
49
  it { is_expected.to come_from(:Person) }
63
50
  it { is_expected.to lead_to(:any) }
64
- ```
65
51
  - Types
66
52
 
67
- ```ruby
68
53
  it { is_expected.to have_relationship_type("WROTE") }
69
- ```
70
54
 
71
55
 
72
56
  ## Need yet another matcher?
@@ -0,0 +1,34 @@
1
+ module Neo4j
2
+ module RSpec
3
+ module Compat
4
+ class << self
5
+ def current
6
+ case Neo4j::VERSION
7
+ when /^6/ then Neo4jrb6.new
8
+ when /^7/ then Neo4jrb7.new
9
+ end
10
+ end
11
+ end
12
+
13
+ class Neo4jrb6
14
+ def property_nesting
15
+ ActiveAttr::Typecasting
16
+ end
17
+
18
+ def property_constraint?(attr, type)
19
+ attr[:constraint] == type
20
+ end
21
+ end
22
+
23
+ class Neo4jrb7
24
+ def property_nesting
25
+ Neo4j::Shared
26
+ end
27
+
28
+ def property_constraint?(attr, type)
29
+ attr.constraint? type
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,6 +1,7 @@
1
1
  require "neo4j/rspec/matchers/has_n"
2
2
  require "neo4j/rspec/matchers/properties"
3
3
  require "neo4j/rspec/matchers/relations"
4
+ require "neo4j/rspec/compat"
4
5
 
5
6
  module Neo4j
6
7
  module RSpec
@@ -28,8 +28,15 @@ module Neo4j
28
28
 
29
29
  matcher :define_property do |name, type = nil|
30
30
  match do |model|
31
- model.attributes.key?(name.to_s) &&
32
- (type ? model.attributes[name.to_s][:type] == type : true)
31
+ name = name.to_s
32
+ return false unless model.attributes.key?(name)
33
+
34
+ if type
35
+ nesting = Neo4j::RSpec::Compat.current.property_nesting
36
+ [nesting, Module].any? { |md| md.constants.any? { |c| type == c } }
37
+ else
38
+ true
39
+ end
33
40
  end
34
41
 
35
42
  failure_message do |model|
@@ -47,7 +54,7 @@ module Neo4j
47
54
 
48
55
  match do |model|
49
56
  model.attributes.key?(name.to_s) &&
50
- model.attributes[name.to_s].constraint?(type)
57
+ Neo4j::RSpec::Compat.current.property_constraint?(model.attributes[name.to_s], type)
51
58
  end
52
59
 
53
60
  failure_message do |model|
@@ -1,5 +1,5 @@
1
1
  module Neo4j
2
2
  module RSpec
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
data/neo4j-rspec.gemspec CHANGED
@@ -16,6 +16,6 @@ Gem::Specification.new do |spec|
16
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
17
  spec.require_paths = ["lib"]
18
18
 
19
- spec.add_dependency "neo4j", "~> 7"
19
+ spec.add_dependency "neo4j", ">= 6.0.0"
20
20
  spec.add_dependency "rspec", "~> 3.4"
21
21
  end
data/travis.gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "neo4j", ENV["NEO4J_VERSION"]
4
+ gem "rspec", "~> 3.4"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Tataurov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-18 00:00:00.000000000 Z
11
+ date: 2016-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: neo4j
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '7'
19
+ version: 6.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '7'
26
+ version: 6.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,12 +53,14 @@ files:
53
53
  - README.md
54
54
  - Rakefile
55
55
  - lib/neo4j/rspec.rb
56
+ - lib/neo4j/rspec/compat.rb
56
57
  - lib/neo4j/rspec/matchers.rb
57
58
  - lib/neo4j/rspec/matchers/has_n.rb
58
59
  - lib/neo4j/rspec/matchers/properties.rb
59
60
  - lib/neo4j/rspec/matchers/relations.rb
60
61
  - lib/neo4j/rspec/version.rb
61
62
  - neo4j-rspec.gemspec
63
+ - travis.gemfile
62
64
  homepage: https://github.com/sineed/neo4j-rspec
63
65
  licenses:
64
66
  - MIT