ruby-dagger 0.2.0 → 0.2.1
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 +4 -4
- data/.rubocop.yml +0 -5
- data/README.md +4 -1
- data/azure-pipelines.yml +22 -0
- data/bin/console +4 -4
- data/lib/dagger/default.rb +2 -0
- data/lib/dagger/generator.rb +1 -0
- data/lib/dagger/generator/regexp.rb +1 -0
- data/lib/dagger/graph.rb +2 -0
- data/lib/dagger/vertex.rb +11 -4
- data/ruby-dagger.gemspec +13 -7
- data/ruby-dagger.sublime-project +8 -0
- metadata +37 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b4815548df0f3403101f979e8ac7be3af0cca871d6d800cd01186c958d2c112f
|
|
4
|
+
data.tar.gz: aeb7536387b287e3e7ea9be20c982d90efb022dc5d7487c435a814a8ed3f124f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 59d586af2dd28e3a94412b7d160e95eb4de34bbac6864f58231fe82560b5201bbc73b38c57c4596685316f5b1ae66645edddb7a78e8cfea8323d88d3ea9ce047
|
|
7
|
+
data.tar.gz: c8c5e006cd4002ea99edd40e81767418333ec0681c9aea39510e41f8cc06a4a070e30d21ffb54e23d069f991fc7c1bcd3d9c493d17de4e45a25a876596e2d61b
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
[](https://badge.fury.io/rb/ruby-dagger)
|
|
1
|
+
[](https://badge.fury.io/rb/ruby-dagger)
|
|
2
|
+
[](https://codeclimate.com/github/notCalle/ruby-dagger/maintainability)
|
|
3
|
+
[](https://codecov.io/gh/notCalle/ruby-dagger)
|
|
4
|
+
[](https://dev.azure.com/notCalle/GitHub%20CI/_build/latest?definitionId=2)
|
|
2
5
|
|
|
3
6
|
# Dagger
|
|
4
7
|
|
data/azure-pipelines.yml
ADDED
|
@@ -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 git-version-bump
|
|
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/console
CHANGED
|
@@ -8,8 +8,8 @@ require 'dagger'
|
|
|
8
8
|
# with your gem easier. You can also use a different console, if you like.
|
|
9
9
|
|
|
10
10
|
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
require 'pry'
|
|
12
|
+
Pry.start
|
|
13
13
|
|
|
14
|
-
require 'irb'
|
|
15
|
-
IRB.start(__FILE__)
|
|
14
|
+
# require 'irb'
|
|
15
|
+
# IRB.start(__FILE__)
|
data/lib/dagger/default.rb
CHANGED
|
@@ -64,6 +64,7 @@ module Dagger
|
|
|
64
64
|
# with_locked_key(key &->(locked_key)) => result
|
|
65
65
|
def with_locked_key(key)
|
|
66
66
|
raise %(deadlock detected: "#{key}") unless @locks.add?(key)
|
|
67
|
+
|
|
67
68
|
yield(key)
|
|
68
69
|
ensure
|
|
69
70
|
@locks.delete(key)
|
|
@@ -76,6 +77,7 @@ module Dagger
|
|
|
76
77
|
def cached_value(tree, key)
|
|
77
78
|
result = process(key)
|
|
78
79
|
return result unless result.nil?
|
|
80
|
+
|
|
79
81
|
result = @fallback&.[](key)
|
|
80
82
|
ensure
|
|
81
83
|
tree[key] = result if cached? && !result.nil?
|
data/lib/dagger/generator.rb
CHANGED
data/lib/dagger/graph.rb
CHANGED
|
@@ -50,6 +50,7 @@ module Dagger
|
|
|
50
50
|
vertex = Vertex.new(path, cached: cached?)
|
|
51
51
|
add_vertex(vertex)
|
|
52
52
|
return true if parent.nil?
|
|
53
|
+
|
|
53
54
|
parent = local_path(parent)
|
|
54
55
|
defer_edge(parent, path)
|
|
55
56
|
end
|
|
@@ -67,6 +68,7 @@ module Dagger
|
|
|
67
68
|
|
|
68
69
|
result = path.delete_prefix(root_directory)
|
|
69
70
|
return '/' if result.empty?
|
|
71
|
+
|
|
70
72
|
result
|
|
71
73
|
end
|
|
72
74
|
|
data/lib/dagger/vertex.rb
CHANGED
|
@@ -39,13 +39,15 @@ module Dagger
|
|
|
39
39
|
|
|
40
40
|
def [](key)
|
|
41
41
|
key = key.to_key_path
|
|
42
|
-
@inherited[key.drop(1)] if key.prefix?('^')
|
|
42
|
+
return @inherited[key.drop(1)] if key.prefix?('^')
|
|
43
|
+
|
|
43
44
|
@forest[key]
|
|
44
45
|
end
|
|
45
46
|
|
|
46
47
|
def fetch(key, *default, &block)
|
|
47
48
|
key = key.to_key_path
|
|
48
|
-
@inherited.fetch(key.drop(1), *default, &block) if key.prefix?('^')
|
|
49
|
+
return @inherited.fetch(key.drop(1), *default, &block) if key.prefix?('^')
|
|
50
|
+
|
|
49
51
|
@forest.fetch(key, *default, &block)
|
|
50
52
|
end
|
|
51
53
|
|
|
@@ -55,21 +57,25 @@ module Dagger
|
|
|
55
57
|
|
|
56
58
|
def edge_added(edge)
|
|
57
59
|
return unless edge.head?(self)
|
|
60
|
+
|
|
58
61
|
@inherited << edge.tail.to_key_wood
|
|
59
62
|
end
|
|
60
63
|
|
|
61
64
|
def edge_removed(edge)
|
|
62
65
|
return unless edge.head?(self)
|
|
66
|
+
|
|
63
67
|
@inherited.reject! { |tree| tree.equal?(edge.tail.to_key_wood) }
|
|
64
68
|
end
|
|
65
69
|
|
|
66
70
|
def added_to_graph(graph)
|
|
67
71
|
raise %(belongs another graph) if @graph&.!= graph
|
|
72
|
+
|
|
68
73
|
@graph = graph
|
|
69
74
|
end
|
|
70
75
|
|
|
71
76
|
def removed_from_graph(graph)
|
|
72
77
|
raise %(not part of graph) if @graph&.!= graph
|
|
78
|
+
|
|
73
79
|
@graph = nil
|
|
74
80
|
end
|
|
75
81
|
|
|
@@ -82,6 +88,7 @@ module Dagger
|
|
|
82
88
|
|
|
83
89
|
flattened = forest.flatten
|
|
84
90
|
return flattened unless cleanup
|
|
91
|
+
|
|
85
92
|
flattened.to_h.delete_if { |key| key.to_s.start_with?('_') }
|
|
86
93
|
flattened
|
|
87
94
|
end
|
|
@@ -94,8 +101,8 @@ module Dagger
|
|
|
94
101
|
flatten(cleanup: true).to_yaml
|
|
95
102
|
end
|
|
96
103
|
|
|
97
|
-
def to_json
|
|
98
|
-
flatten(cleanup: true).to_json
|
|
104
|
+
def to_json(*args)
|
|
105
|
+
flatten(cleanup: true).to_json(*args)
|
|
99
106
|
end
|
|
100
107
|
|
|
101
108
|
private
|
data/ruby-dagger.gemspec
CHANGED
|
@@ -5,6 +5,18 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
|
5
5
|
|
|
6
6
|
require 'dagger/version'
|
|
7
7
|
|
|
8
|
+
dev_deps = {
|
|
9
|
+
'bundler' => '~> 2.0',
|
|
10
|
+
'codecov' => '~> 0.1',
|
|
11
|
+
'git-version-bump' => '~> 0.15',
|
|
12
|
+
'pry' => '~> 0.11',
|
|
13
|
+
'rake' => '~> 10.0',
|
|
14
|
+
'rspec' => '~> 3.0',
|
|
15
|
+
'rubocop' => '~> 0.57',
|
|
16
|
+
'ruby-prof' => '~> 0.17',
|
|
17
|
+
'simplecov' => '~> 0.16'
|
|
18
|
+
}
|
|
19
|
+
|
|
8
20
|
Gem::Specification.new do |spec|
|
|
9
21
|
spec.name = 'ruby-dagger'
|
|
10
22
|
spec.version = Dagger::VERSION
|
|
@@ -28,11 +40,5 @@ Gem::Specification.new do |spec|
|
|
|
28
40
|
spec.add_dependency 'key_tree', '~> 0.6'
|
|
29
41
|
spec.add_dependency 'tangle', '~> 0.10'
|
|
30
42
|
|
|
31
|
-
|
|
32
|
-
spec.add_development_dependency 'git-version-bump', '~> 0.15'
|
|
33
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
|
34
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
35
|
-
spec.add_development_dependency 'rubocop', '~> 0.52'
|
|
36
|
-
spec.add_development_dependency 'ruby-prof', '~> 0.17'
|
|
37
|
-
spec.add_development_dependency 'simplecov', '~> 0.16'
|
|
43
|
+
dev_deps.each { |d| spec.add_development_dependency(*d) }
|
|
38
44
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby-dagger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Calle Englund
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2019-07-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: key_tree
|
|
@@ -44,14 +44,28 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '2.0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '2.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: codecov
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0.1'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0.1'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: git-version-bump
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,6 +80,20 @@ dependencies:
|
|
|
66
80
|
- - "~>"
|
|
67
81
|
- !ruby/object:Gem::Version
|
|
68
82
|
version: '0.15'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: pry
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0.11'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0.11'
|
|
69
97
|
- !ruby/object:Gem::Dependency
|
|
70
98
|
name: rake
|
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,14 +128,14 @@ dependencies:
|
|
|
100
128
|
requirements:
|
|
101
129
|
- - "~>"
|
|
102
130
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0.
|
|
131
|
+
version: '0.57'
|
|
104
132
|
type: :development
|
|
105
133
|
prerelease: false
|
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
135
|
requirements:
|
|
108
136
|
- - "~>"
|
|
109
137
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0.
|
|
138
|
+
version: '0.57'
|
|
111
139
|
- !ruby/object:Gem::Dependency
|
|
112
140
|
name: ruby-prof
|
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -152,6 +180,7 @@ files:
|
|
|
152
180
|
- LICENSE.txt
|
|
153
181
|
- README.md
|
|
154
182
|
- Rakefile
|
|
183
|
+
- azure-pipelines.yml
|
|
155
184
|
- bin/console
|
|
156
185
|
- bin/setup
|
|
157
186
|
- lib/dagger.rb
|
|
@@ -166,6 +195,7 @@ files:
|
|
|
166
195
|
- lib/dagger/version.rb
|
|
167
196
|
- lib/dagger/vertex.rb
|
|
168
197
|
- ruby-dagger.gemspec
|
|
198
|
+
- ruby-dagger.sublime-project
|
|
169
199
|
homepage: https://github.com/notcalle/ruby-dagger
|
|
170
200
|
licenses:
|
|
171
201
|
- MIT
|
|
@@ -185,8 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
185
215
|
- !ruby/object:Gem::Version
|
|
186
216
|
version: '0'
|
|
187
217
|
requirements: []
|
|
188
|
-
|
|
189
|
-
rubygems_version: 2.7.6
|
|
218
|
+
rubygems_version: 3.0.3
|
|
190
219
|
signing_key:
|
|
191
220
|
specification_version: 4
|
|
192
221
|
summary: Manage a DAG, stored in posix file structures
|