dla 0.1.0 → 0.2.0
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/{README → README.md} +5 -0
- data/dla.gemspec +50 -0
- data/lib/dla/version.rb +1 -1
- data/lib/dla.rb +7 -2
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7924940dd08d75a8ba2a33bde89303a8e614935f52a1f4b165071f5079725551
|
4
|
+
data.tar.gz: 3f119444b8274e10d3c3ae6fee1291ddeba3fdede92da04f8e080607038ff8aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 894d2beef00997a1a3648502ce9352c9732dc20c7e976b84353a6321229297e6b094e8c7212e749f6fcd33633b1627cd3f03838b8bde6ebd735ac13164a9e747
|
7
|
+
data.tar.gz: ecaf94c09b269f31b8add7c10a6cf55025ccc470146ade0855721d674a2cd64d4ce00c9097d1e8f7e7d8f41df4dc122b5058317f5e55a4b93fdab889a6e0bce4
|
data/{README → README.md}
RENAMED
@@ -19,6 +19,7 @@ A Ruby library implementing Diffusion-Limited Aggregation.
|
|
19
19
|
- [ ] Make history optional
|
20
20
|
- [ ] Multithreading
|
21
21
|
- [ ] Make Demo app human-friendly
|
22
|
+
- [ ] Make direction vectors configurable
|
22
23
|
|
23
24
|
## Installation
|
24
25
|
|
@@ -54,6 +55,10 @@ Inspect state:
|
|
54
55
|
``` ruby
|
55
56
|
root.nodes.each{|n| puts n}
|
56
57
|
```
|
58
|
+
|
59
|
+
The history string is made of the letters n, s, e, w to describe the directions followed during the calls to `#move`.
|
60
|
+
NOTE: The Y axis is oriented to the North.
|
61
|
+
|
57
62
|
## Demo app
|
58
63
|
|
59
64
|
A quick and dirty demo app is in `./bin/dla.rb`.
|
data/dla.gemspec
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/dla/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'dla'
|
7
|
+
spec.version = DLA::VERSION
|
8
|
+
spec.authors = ['Arnaud Meuret']
|
9
|
+
spec.email = ['arnaud@meuret.net']
|
10
|
+
|
11
|
+
spec.summary = 'A tool to create diffusion-limited aggregates.'
|
12
|
+
spec.description = 'A tool to compute and export trees built using a DLA (Diffusion-limited Aggregation) algorithm.'
|
13
|
+
spec.homepage = 'https://github.com/ameuret/dla'
|
14
|
+
spec.license = 'Unlicense'
|
15
|
+
spec.required_ruby_version = '>= 3.3.0'
|
16
|
+
|
17
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
18
|
+
|
19
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
20
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
21
|
+
#spec.metadata['changelog_uri'] = 'TODO: Put your gem\'s CHANGELOG.md URL here.'
|
22
|
+
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
+
spec.files = Dir.chdir(__dir__) do
|
26
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
27
|
+
(File.expand_path(f) == __FILE__) ||
|
28
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git appveyor Gemfile])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
spec.bindir = "exe"
|
32
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
33
|
+
spec.require_paths = ['lib']
|
34
|
+
|
35
|
+
# Uncomment to register a new dependency of your gem
|
36
|
+
spec.add_dependency "tty-box", "~> 0.7"
|
37
|
+
spec.add_dependency "tty-cursor", "~> 0.7"
|
38
|
+
spec.add_dependency "tty-reader", "~> 0.9"
|
39
|
+
spec.add_dependency "tty-screen", "~> 0.8"
|
40
|
+
spec.add_dependency "ruby-duration", "~> 3.2"
|
41
|
+
|
42
|
+
spec.add_development_dependency 'filewatcher-cli', '~> 1.1'
|
43
|
+
spec.add_development_dependency 'gem-release', '~> 2.2'
|
44
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
45
|
+
spec.add_development_dependency 'rspec', '~> 3.13'
|
46
|
+
spec.add_development_dependency 'simplecov', '~> 0.22'
|
47
|
+
spec.add_development_dependency 'solargraph', '~> 0.5'
|
48
|
+
# For more information and examples about making a new gem, check out our
|
49
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
50
|
+
end
|
data/lib/dla/version.rb
CHANGED
data/lib/dla.rb
CHANGED
@@ -31,6 +31,10 @@ module DLA
|
|
31
31
|
allTreeNodes.find { |n| n.x == x && n.y == y }
|
32
32
|
end
|
33
33
|
|
34
|
+
def free?(x, y)
|
35
|
+
!allTreeNodes.any? { |n| n.x == x && n.y == y }
|
36
|
+
end
|
37
|
+
|
34
38
|
def north
|
35
39
|
@children[:north]
|
36
40
|
end
|
@@ -80,10 +84,11 @@ module DLA
|
|
80
84
|
}[dir]
|
81
85
|
end
|
82
86
|
|
83
|
-
def move
|
87
|
+
def move(direction = nil)
|
84
88
|
raise RuntimeError if @parent
|
89
|
+
raise ArgumentError unless (direction.nil? || [:north, :south, :east, :west].include?(direction))
|
85
90
|
|
86
|
-
dir = [:north, :south, :east, :west].sample
|
91
|
+
dir = direction || [:north, :south, :east, :west].sample
|
87
92
|
destV = {
|
88
93
|
north: [0, 1],
|
89
94
|
south: [0, -1],
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arnaud Meuret
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: gem-release
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.2'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.2'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rake
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +136,20 @@ dependencies:
|
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '3.13'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: simplecov
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.22'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.22'
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: solargraph
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -152,8 +180,9 @@ files:
|
|
152
180
|
- CODE_OF_CONDUCT.md
|
153
181
|
- LICENSE
|
154
182
|
- LICENSE.txt
|
155
|
-
- README
|
183
|
+
- README.md
|
156
184
|
- Rakefile
|
185
|
+
- dla.gemspec
|
157
186
|
- lib/dla.rb
|
158
187
|
- lib/dla/version.rb
|
159
188
|
- sig/dla.rbs
|