mementus 0.5.11 → 0.5.12

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: c2d345ed84736981e0ea78702dc9530538d20161
4
- data.tar.gz: 2bce7c3662db759957bb7187f59a166c40c89e7e
3
+ metadata.gz: 062513a7421592da50c105498ed8f2ea0ba1fe20
4
+ data.tar.gz: 9ff80b9adb5150e584aaa7f0fb8489310af51319
5
5
  SHA512:
6
- metadata.gz: 2c20965789119478aef278ed46cb9db1c0105cbb1d3f3708bc35b83fd7481a4f107cf5d7ffffeea662182f051239e922cf028e5a1024606d891d8b87567e4a19
7
- data.tar.gz: 6d70a0d20723783667bfdc3d48b0cdea4b30debd9b5362dc3c5c51b5064bf1bc3a1dac8db6925bcaebaeb00ff2bc7cb179f6c5c59aed4baef15863d47363bbed
6
+ metadata.gz: 801cd4a359833cba81516275719d23bde7959d9081488b34548a734fd1f3d1e8bb205140c443ae01e65596c0ee41a2d0e19e5d88d15f59de38e8d78d557fd70c
7
+ data.tar.gz: f3bc38a6e68fcc0bcbef5271b639599bd5e44e744b29b2b8fc0ed0b7763b083001e8c702d65fa6b6bce88d0effdc7f69e04e05ae48b381eac9fbeabca615a2ee
data/README.md CHANGED
@@ -4,15 +4,16 @@
4
4
 
5
5
  ## Roadmap
6
6
 
7
- | Version | Summary |
8
- |---------|----------------------------------------------------------|
9
- | `0.6` | Support fiber based lazily evaluated pipeline traversals |
10
- | `0.7` | Implement basic filter, side effect and transform pipes |
11
- | `0.8` | API support for Dijkstra/A* traversals using edge props |
12
- | `0.9` | Pluggable graph structure representations |
13
- | `0.10` | API support for tsort and strongly connected components |
14
- | `0.11` | Expand graph library with interesting sample data |
15
- | `0.12` | Import/export via JSON and XML formats |
7
+ | Version | Summary |
8
+ |---------|--------------------------------------------------------------|
9
+ | `0.5` | ~~Support fiber based lazily evaluated pipeline traversals~~ |
10
+ | `0.6` | Modular graph processing API and query style |
11
+ | `0.7` | Implement basic filter, side effect and transform pipes |
12
+ | `0.8` | API support for Dijkstra/A* traversals using edge props |
13
+ | `0.9` | Pluggable graph structure representations |
14
+ | `0.10` | API support for tsort and strongly connected components |
15
+ | `0.11` | Expand graph library with interesting sample data |
16
+ | `0.12` | Import/export via JSON and XML formats |
16
17
 
17
18
  ## License
18
19
 
@@ -36,8 +36,8 @@ module Mementus
36
36
  @structure.has_node?(node)
37
37
  end
38
38
 
39
- def has_edge?(edge)
40
- @structure.has_edge?(edge)
39
+ def has_edge?(edge, to=nil)
40
+ @structure.has_edge?(edge, to)
41
41
  end
42
42
 
43
43
  def node(id)
@@ -31,8 +31,18 @@ module Mementus
31
31
  end
32
32
  end
33
33
 
34
- def has_edge?(edge)
35
- @edges.key?(edge.id)
34
+ def has_edge?(edge, to=nil)
35
+ if to
36
+ return node(edge).outgoing.any? do |target_node|
37
+ target_node.id == to
38
+ end
39
+ end
40
+
41
+ if edge.is_a?(Mementus::Edge) || edge.is_a?(Mementus::EdgeProxy)
42
+ @edges.key?(edge.id)
43
+ else
44
+ @edges.key?(edge)
45
+ end
36
46
  end
37
47
 
38
48
  def set_node(node)
@@ -1,3 +1,3 @@
1
1
  module Mementus
2
- VERSION = '0.5.11'.freeze
2
+ VERSION = '0.5.12'.freeze
3
3
  end
@@ -143,12 +143,22 @@ describe Mementus::Graph do
143
143
  expect(graph.has_node?(node_1.id)).to be true
144
144
  end
145
145
 
146
- specify '#has_edge?' do
146
+ describe '#has_edge?' do
147
147
  graph = Mementus::Graph.new do
148
148
  set_edge(edge_1_2)
149
149
  end
150
150
 
151
- expect(graph.has_edge?(edge_1_2)).to be true
151
+ specify 'edge' do
152
+ expect(graph.has_edge?(edge_1_2)).to be true
153
+ end
154
+
155
+ specify 'edge.id' do
156
+ expect(graph.has_edge?(edge_1_2.id)).to be true
157
+ end
158
+
159
+ specify 'from.id, to.id' do
160
+ expect(graph.has_edge?(1, 2)).to be true
161
+ end
152
162
  end
153
163
 
154
164
  specify '#node(id)' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mementus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.11
4
+ version: 0.5.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - maetl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-13 00:00:00.000000000 Z
11
+ date: 2017-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  version: '0'
134
134
  requirements: []
135
135
  rubyforge_project:
136
- rubygems_version: 2.5.1
136
+ rubygems_version: 2.6.11
137
137
  signing_key:
138
138
  specification_version: 4
139
139
  summary: Graph data structure toolkit for Ruby applications.
@@ -156,3 +156,4 @@ test_files:
156
156
  - spec/structure/indexed_graph_example.rb
157
157
  - spec/structure/property_graph_example.rb
158
158
  - spec/traversal_spec.rb
159
+ has_rdoc: