tangle 0.10.1 → 0.10.2

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
  SHA256:
3
- metadata.gz: d5878dbe50fd2315ccbdb40dcd43d2e3989c00a1d0305c523d1e6e77eacaf2d1
4
- data.tar.gz: 5ebbdbaa654e75390364be31c496fa0d2577df1c62a35dff4c8107f39078a61f
3
+ metadata.gz: 3e6a0584872a8ae1df5d34e930cf39a4c83fd2b9b030f1b36e4485a7399f8823
4
+ data.tar.gz: e29307f7ab2226d172912f4241c9bff7c406a000344f65b5a145bb40415544ea
5
5
  SHA512:
6
- metadata.gz: d71c5d10cccb476903f7a380fdf06032253ed39f5b6870553f3ed7aaf9c6fb09b1319974262aa52d6eb5ff3a15841c65ebbced0bab38dece58bc6b564830c884
7
- data.tar.gz: ffae0d09c0a98e225c91c786ea800674d1904e3e4f76056bb0fd515366faf785e9825b7406ddc64f3891d21c7feead28bf6f9caf71d49b2180f567203a79c76c
6
+ metadata.gz: 031fbb0a746400aa40fd5aa410547729bbadc368098209d6fdcc1dc70b7b47381147a6eaedbb4f0a14d19645183aac34cfef383bcaabb5b9645d51ce905f1e85
7
+ data.tar.gz: 5e54ebabd5abce32799e571901a59ccfa2422cb678de6687ffaf9cdeb901e01994ea30ffdeac9da23d19bb2fc763d0833205086ba6eda55dba280183539cda52
@@ -0,0 +1,31 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+
10
+ ## [0.10.2] - 2019-07-05
11
+
12
+ ### Changed
13
+
14
+ - `Currify::currify`now raises a `CurrifyError` < `ArgumentError` when the
15
+ method takes no arguments, instead of the curried method failing when called
16
+
17
+ - Development dependency on `bundler` is updated to `~> 2.0`.
18
+
19
+ ### Fixed
20
+
21
+ - `Graph#connected_subgraph` and `Graph#disconnected_subgraph` called an invalid
22
+ method to determine connectedness of candidate vertices
23
+
24
+
25
+ ## [Older]
26
+ These releases have no change logs.
27
+
28
+
29
+ [Unreleased]: https://github.com/notCalle/ruby-tangle/compare/v0.3.0..HEAD
30
+ [0.10.2]: https://github.com/notCalle/ruby-tangle/compare/v0.10.1..v0.10.2
31
+ [Older]: https://github.com/notCalle/ruby-tangle/releases/tag/v0.10.1
data/Gemfile CHANGED
@@ -4,11 +4,5 @@ source 'https://rubygems.org'
4
4
 
5
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
- begin
8
- require 'git-version-bump'
9
- rescue LoadError
10
- gem 'git-version-bump', '~> 0.15'
11
- else
12
- # Specify your gem's dependencies in tangle.gemspec
13
- gemspec
14
- end
7
+ # Specify your gem's dependencies in tangle.gemspec
8
+ gemspec
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- [![Gem Version](https://badge.fury.io/rb/tangle.svg)](https://badge.fury.io/rb/tangle) [![Maintainability](https://api.codeclimate.com/v1/badges/0d92a4d05b6bb5c06dce/maintainability)](https://codeclimate.com/github/notCalle/ruby-tangle/maintainability)
1
+ [![Gem Version](https://badge.fury.io/rb/tangle.svg)](https://badge.fury.io/rb/tangle)
2
+ [![Maintainability](https://api.codeclimate.com/v1/badges/0d92a4d05b6bb5c06dce/maintainability)](https://codeclimate.com/github/notCalle/ruby-tangle/maintainability)
3
+ [![codecov](https://codecov.io/gh/notCalle/ruby-tangle/branch/master/graph/badge.svg)](https://codecov.io/gh/notCalle/ruby-tangle)
4
+ [![Build Status](https://dev.azure.com/notCalle/GitHub%20CI/_apis/build/status/notCalle.ruby-tangle)](https://dev.azure.com/notCalle/GitHub%20CI/_build/latest?definitionId=2)
2
5
 
3
6
  # Tangle
4
7
 
@@ -12,10 +15,12 @@ Tangle aims to untangle your graphs, by providing a set of classes for managing
12
15
  * ~~Tree~~
13
16
 
14
17
  **Feature mixins**:
15
- * Connectedness
18
+ * Filesystem directory graph
16
19
  * ~~Coloring~~
17
20
  * ~~GraphViz~~
18
21
 
22
+ See the [changelog](CHANGELOG.md) for recent changes.
23
+
19
24
  ## Installation
20
25
 
21
26
  Add this line to your application's Gemfile:
@@ -0,0 +1,22 @@
1
+ # Ruby
2
+ # Package your Ruby project.
3
+ # Add steps that install rails, analyze code, save build artifacts, deploy, and more:
4
+ # https://docs.microsoft.com/azure/devops/pipelines/languages/ruby
5
+
6
+ pool:
7
+ vmImage: 'Ubuntu 16.04'
8
+
9
+ steps:
10
+ - task: UseRubyVersion@0
11
+ inputs:
12
+ versionSpec: '>= 2.5'
13
+
14
+ - script: |
15
+ gem install bundler
16
+ bin/setup
17
+ displayName: 'bundle install'
18
+
19
+ - script: bundle exec rake
20
+ displayName: 'bundle exec rake'
21
+ env:
22
+ CODECOV_TOKEN: $(codecov.token)
data/bin/setup CHANGED
@@ -4,6 +4,5 @@ IFS=$'\n\t'
4
4
  set -vx
5
5
 
6
6
  bundle install
7
- bundle update
8
7
 
9
8
  # Do any other automated setup that you need to do here
@@ -70,6 +70,12 @@ module Tangle
70
70
  result
71
71
  end
72
72
 
73
+ def clone
74
+ result = super
75
+ result.copy_vertices_and_edges(self)
76
+ result
77
+ end
78
+
73
79
  def to_s
74
80
  "#<#{self.class}: #{vertices.count} vertices, #{edges.count} edges>"
75
81
  end
@@ -7,6 +7,12 @@ module Tangle
7
7
  module BaseGraphProtected
8
8
  protected
9
9
 
10
+ def copy_vertices_and_edges(from)
11
+ @vertices = from.instance_variable_get(:@vertices).dup
12
+ @vertices_by_name = from.instance_variable_get(:@vertices_by_name).dup
13
+ @edges = from.instance_variable_get(:@edges).dup
14
+ end
15
+
10
16
  def select_vertices!(selected = nil)
11
17
  vertices.each do |vertex|
12
18
  delete_vertex(vertex) if block_given? && !yield(vertex)
@@ -1,6 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tangle
4
+ # Raised for zero arity of a currified method, subclass of ArgumentError
5
+ class CurrifyError < ArgumentError
6
+ def initialize(msg = 'method accepts no arguments', *)
7
+ super
8
+ end
9
+ end
10
+
4
11
  # Currification of instance methods, for adding callbacks to other objects
5
12
  module Currify
6
13
  def self.included(base)
@@ -28,6 +35,8 @@ module Tangle
28
35
  # class X
29
36
  # currify :tag, :method
30
37
  def currify(tag, method)
38
+ raise CurrifyError if instance_method(method).arity.zero?
39
+
31
40
  @currified_methods ||= {}
32
41
  @currified_methods[tag] ||= []
33
42
  @currified_methods[tag] << method
@@ -25,7 +25,7 @@ module Tangle
25
25
  # connected_subgraph(vertex) => Graph
26
26
  #
27
27
  def connected_subgraph(vertex)
28
- subgraph { |other| connected_vertices?(vertex, other) }
28
+ subgraph { |other| connected?(vertex, other) }
29
29
  end
30
30
  alias component connected_subgraph
31
31
  alias connected_component connected_subgraph
@@ -34,7 +34,7 @@ module Tangle
34
34
  # left after removing the connected subgraph.
35
35
  #
36
36
  def disconnected_subgraph(vertex)
37
- subgraph { |other| !connected_vertices?(vertex, other) }
37
+ subgraph { |other| !connected?(vertex, other) }
38
38
  end
39
39
 
40
40
  # A graph is connected if all vertices are connected to all vertices
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'git-version-bump'
4
-
5
- module Tangle
6
- VERSION = GVB.version.freeze
7
- DATE = GVB.date.freeze
3
+ module Tangle # rubocop:disable Style/Documentation
4
+ begin
5
+ require 'git-version-bump'
6
+ VERSION = GVB.version.freeze
7
+ rescue LoadError
8
+ VERSION = '0.0.0.UNDEF'
9
+ end
8
10
  end
@@ -0,0 +1,8 @@
1
+ {
2
+ "folders":
3
+ [
4
+ {
5
+ "path": "."
6
+ }
7
+ ]
8
+ }
@@ -4,10 +4,20 @@ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'tangle/version'
6
6
 
7
+ dev_deps = {
8
+ 'bundler' => '~> 2.0',
9
+ 'codecov' => '~> 0.1',
10
+ 'fasterer' => '~> 0.4',
11
+ 'pry' => '~> 0.11',
12
+ 'rake' => '~> 10.0',
13
+ 'rspec' => '~> 3.0',
14
+ 'rubocop' => '~> 0.57',
15
+ 'simplecov' => '~> 0.16'
16
+ }
17
+
7
18
  Gem::Specification.new do |spec|
8
19
  spec.name = 'tangle'
9
20
  spec.version = Tangle::VERSION
10
- spec.date = Tangle::DATE
11
21
  spec.authors = ['Calle Englund']
12
22
  spec.email = ['calle@discord.bofh.se']
13
23
 
@@ -27,11 +37,5 @@ Gem::Specification.new do |spec|
27
37
 
28
38
  spec.add_dependency 'git-version-bump', '~> 0.15'
29
39
 
30
- spec.add_development_dependency 'bundler', '~> 1.16'
31
- spec.add_development_dependency 'fasterer', '~> 0.4'
32
- spec.add_development_dependency 'pry', '~> 0.11'
33
- spec.add_development_dependency 'rake', '~> 10.0'
34
- spec.add_development_dependency 'rspec', '~> 3.0'
35
- spec.add_development_dependency 'rubocop', '~> 0.57'
36
- spec.add_development_dependency 'simplecov', '~> 0.16'
40
+ dev_deps.each { |d| spec.add_development_dependency(*d) }
37
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tangle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Calle Englund
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-29 00:00:00.000000000 Z
11
+ date: 2019-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: git-version-bump
@@ -30,14 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.16'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.16'
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: codecov
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.1'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: fasterer
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -133,11 +147,13 @@ files:
133
147
  - ".rspec"
134
148
  - ".rubocop.yml"
135
149
  - ".travis.yml"
150
+ - CHANGELOG.md
136
151
  - CODE_OF_CONDUCT.md
137
152
  - Gemfile
138
153
  - LICENSE.txt
139
154
  - README.md
140
155
  - Rakefile
156
+ - azure-pipelines.yml
141
157
  - bin/console
142
158
  - bin/setup
143
159
  - lib/tangle.rb
@@ -157,6 +173,7 @@ files:
157
173
  - lib/tangle/undirected/graph.rb
158
174
  - lib/tangle/undirected/simple/graph.rb
159
175
  - lib/tangle/version.rb
176
+ - ruby-tangle.sublime-project
160
177
  - tangle.gemspec
161
178
  homepage: https://github.com/notcalle/ruby-tangle
162
179
  licenses:
@@ -177,8 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
194
  - !ruby/object:Gem::Version
178
195
  version: '0'
179
196
  requirements: []
180
- rubyforge_project:
181
- rubygems_version: 2.7.6
197
+ rubygems_version: 3.0.3
182
198
  signing_key:
183
199
  specification_version: 4
184
200
  summary: Tangle implements graphs of things