mikado_graph_generator 0.2.0 → 0.4.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 +5 -5
- data/.editorconfig +0 -2
- data/.envrc +3 -0
- data/.envrc.sample +3 -0
- data/.gitignore +8 -13
- data/.rspec +2 -0
- data/.rubocop +1 -0
- data/.rubocop.disabled.yml +168 -0
- data/.rubocop.enabled.yml +300 -0
- data/.rubocop.yml +10 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -2
- data/Gemfile +1 -1
- data/Gemfile.lock +87 -18
- data/Guardfile +56 -0
- data/README.md +46 -14
- data/Rakefile +2 -1
- data/example_usage_horizontal.rb +14 -0
- data/example_usage_vertical.rb +14 -0
- data/lib/mikado_graph.rb +1 -1
- data/lib/mikado_graph/generator.rb +25 -15
- data/lib/mikado_graph/{dependencies.rb → prerequisites.rb} +4 -4
- data/lib/mikado_graph/state.rb +7 -9
- data/lib/mikado_graph/version.rb +1 -1
- data/mikado_graph.gemspec +19 -14
- metadata +97 -17
- data/example_usage.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a254c6a80eab0d8a945761db1885099d097e377e84a45710610e2fbb66f336fb
|
4
|
+
data.tar.gz: 2f9164d1e405be0c8cc583c578f8768ec82f9fe4fecf9c0531b224573f1d7a27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78de18a57dfd317370ea5b26b4d48337b33d575b7184686b6b8139efac1d72b37fa98f09a08bc01f0d09094e96de8380240ad2475a15502bdb93e9cc0e0d68ea
|
7
|
+
data.tar.gz: 1793b88bb2c63668f226beb685631e1b221b19b53fe45a9f6660584704b1e4d571ab42b2e7b3f75a62688d32660735246bbf20ffe458edb90a76ddb49654804c
|
data/.editorconfig
CHANGED
data/.envrc
ADDED
data/.envrc.sample
ADDED
data/.gitignore
CHANGED
@@ -1,15 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
/
|
8
|
-
|
9
|
-
|
10
|
-
# rspec failure tracking
|
11
|
-
.rspec_status
|
12
|
-
|
13
|
-
.idea/
|
1
|
+
# Ignore all logfiles and tempfiles.
|
2
|
+
.DS_Store
|
3
|
+
.idea/*
|
4
|
+
coverage/
|
5
|
+
doc/
|
6
|
+
log/*.log
|
7
|
+
pkg/
|
8
|
+
tmp/
|
14
9
|
|
15
10
|
*.png
|
data/.rspec
CHANGED
data/.rubocop
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--display-cop-names
|
@@ -0,0 +1,168 @@
|
|
1
|
+
#
|
2
|
+
# Do not enforce any of these cops...
|
3
|
+
#
|
4
|
+
# Note: cops are ordered alphabetically.
|
5
|
+
#
|
6
|
+
|
7
|
+
require: rubocop-rspec
|
8
|
+
|
9
|
+
#
|
10
|
+
# Checks that tests use 'described_class'.
|
11
|
+
#
|
12
|
+
# Note: I can't figure out which is the correct cop so I've included both.
|
13
|
+
#
|
14
|
+
RSpec/DescribedClass:
|
15
|
+
Enabled: false
|
16
|
+
|
17
|
+
RSpec/DescribeClass:
|
18
|
+
Enabled: false
|
19
|
+
|
20
|
+
#
|
21
|
+
# Checks that the second argument to 'describe' specifies a method.
|
22
|
+
#
|
23
|
+
RSpec/DescribeMethod:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
#
|
27
|
+
# Checks for 'subject' definitions that come after 'let' definitions.
|
28
|
+
#
|
29
|
+
# # bad
|
30
|
+
# RSpec.describe User do
|
31
|
+
# let(:params) { blah }
|
32
|
+
# subject { described_class.new(params) }
|
33
|
+
#
|
34
|
+
# it 'is valid' do
|
35
|
+
# expect(subject.valid?).to be(true)
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
#
|
39
|
+
# # good
|
40
|
+
# RSpec.describe User do
|
41
|
+
# subject { described_class.new(params) }
|
42
|
+
#
|
43
|
+
# let(:params) { blah }
|
44
|
+
#
|
45
|
+
# it 'is valid' do
|
46
|
+
# expect(subject.valid?).to be(true)
|
47
|
+
# end
|
48
|
+
# end
|
49
|
+
#
|
50
|
+
RSpec/LeadingSubject:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
#
|
54
|
+
# This cop looks for uses of block comments (=begin...=end).
|
55
|
+
#
|
56
|
+
Style/BlockComments:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
#
|
60
|
+
# Check for if and case statements where each branch is used for assignment to the same variable when using
|
61
|
+
# the return of the condition can be used instead.
|
62
|
+
#
|
63
|
+
# # bad
|
64
|
+
# if foo
|
65
|
+
# bar = 1
|
66
|
+
# else
|
67
|
+
# bar = 2
|
68
|
+
# end
|
69
|
+
#
|
70
|
+
# # good
|
71
|
+
# bar = if foo
|
72
|
+
# 1
|
73
|
+
# else
|
74
|
+
# 2
|
75
|
+
# end
|
76
|
+
#
|
77
|
+
Style/ConditionalAssignment:
|
78
|
+
Enabled: false
|
79
|
+
|
80
|
+
#
|
81
|
+
# This cop checks for missing top-level documentation of classes and modules.
|
82
|
+
#
|
83
|
+
Style/Documentation:
|
84
|
+
Enabled: false
|
85
|
+
|
86
|
+
#
|
87
|
+
# This cop checks for uses of double negation (!!) to convert something to a boolean value. As this is both
|
88
|
+
# cryptic and usually redundant, it should be avoided.
|
89
|
+
#
|
90
|
+
Style/DoubleNegation:
|
91
|
+
Enabled: false
|
92
|
+
|
93
|
+
#
|
94
|
+
# This cop checks for the formatting of empty method definitions. By default it enforces empty method definitions to go
|
95
|
+
# on a single line (compact style), but it can be configured to enforce the end to go on its own line (expanded style.)
|
96
|
+
#
|
97
|
+
# Note: A method definition is not considered empty if it contains comments.
|
98
|
+
#
|
99
|
+
Style/EmptyMethod:
|
100
|
+
Enabled: false
|
101
|
+
|
102
|
+
#
|
103
|
+
# This cop is designed to help upgrade to Ruby 3.0. It will add the comment `# frozen_string_literal: true` to the top
|
104
|
+
# of files to enable frozen string literals. Frozen string literals will be default in Ruby 3.0. The comment will be
|
105
|
+
# added below a shebang and encoding comment. The frozen string literal comment is only valid in Ruby 2.3+.
|
106
|
+
#
|
107
|
+
Style/FrozenStringLiteralComment:
|
108
|
+
Enabled: false
|
109
|
+
|
110
|
+
#
|
111
|
+
# This cops checks for use of extend self or module_function in a module.
|
112
|
+
#
|
113
|
+
Style/ModuleFunction:
|
114
|
+
Enabled: false
|
115
|
+
|
116
|
+
#
|
117
|
+
# This cop checks whether some constant value isn't a mutable literal (e.g. array or hash).
|
118
|
+
#
|
119
|
+
# # bad
|
120
|
+
# CONST = [1, 2, 3]
|
121
|
+
#
|
122
|
+
# # good
|
123
|
+
# CONST = [1, 2, 3].freeze
|
124
|
+
#
|
125
|
+
Style/MutableConstant:
|
126
|
+
Enabled: false
|
127
|
+
|
128
|
+
#
|
129
|
+
# This cop (by default) checks for uses of methods Hash#has_key? and Hash#has_value? where it enforces Hash#key? and
|
130
|
+
# Hash#value? It is configurable to enforce the inverse, using verbose method names also.
|
131
|
+
#
|
132
|
+
# EnforcedStyle: short
|
133
|
+
#
|
134
|
+
# # bad
|
135
|
+
# Hash#has_key?
|
136
|
+
# Hash#has_value?
|
137
|
+
#
|
138
|
+
# # good
|
139
|
+
# Hash#key?
|
140
|
+
# Hash#value?
|
141
|
+
#
|
142
|
+
# EnforcedStyle: verbose
|
143
|
+
#
|
144
|
+
# # bad
|
145
|
+
# Hash#key?
|
146
|
+
# Hash#value?
|
147
|
+
#
|
148
|
+
# # good
|
149
|
+
# Hash#has_key?
|
150
|
+
# Hash#has_value?
|
151
|
+
#
|
152
|
+
Style/PreferredHashMethods:
|
153
|
+
Enabled: false
|
154
|
+
|
155
|
+
#
|
156
|
+
# This cop checks whether the block parameters of a single-line method accepting a block match the names
|
157
|
+
# specified via configuration.
|
158
|
+
#
|
159
|
+
# For instance one can configure reduce(inject) to use |a, e| as parameters.
|
160
|
+
#
|
161
|
+
Style/SingleLineBlockParams:
|
162
|
+
Enabled: false
|
163
|
+
|
164
|
+
#
|
165
|
+
# This cop can check for the %w() syntax.
|
166
|
+
#
|
167
|
+
Style/WordArray:
|
168
|
+
Enabled: false
|
@@ -0,0 +1,300 @@
|
|
1
|
+
#
|
2
|
+
# Enforce all of these cops...
|
3
|
+
#
|
4
|
+
# Note: cops are ordered alphabetically.
|
5
|
+
#
|
6
|
+
|
7
|
+
require: rubocop-rspec
|
8
|
+
|
9
|
+
#
|
10
|
+
# This cop checks whether the end keywords are aligned properly.
|
11
|
+
#
|
12
|
+
# # good
|
13
|
+
# variable = if true
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
Layout/EndAlignment:
|
17
|
+
EnforcedStyleAlignWith: variable
|
18
|
+
|
19
|
+
#
|
20
|
+
# This cop looks for error classes inheriting from Exception and its standard library subclasses,
|
21
|
+
# excluding subclasses of StandardError.
|
22
|
+
#
|
23
|
+
Lint/InheritException:
|
24
|
+
EnforcedStyle: runtime_error
|
25
|
+
|
26
|
+
#
|
27
|
+
# This cop checks if the length of a block exceeds some maximum value. Comment lines can optionally be ignored.
|
28
|
+
# The maximum allowed length is configurable. The cop can be configured to ignore blocks passed to certain methods.
|
29
|
+
#
|
30
|
+
Metrics/BlockLength:
|
31
|
+
ExcludedMethods:
|
32
|
+
- describe
|
33
|
+
|
34
|
+
#
|
35
|
+
# This cop checks the length of lines in the source code.
|
36
|
+
#
|
37
|
+
Layout/LineLength:
|
38
|
+
Max: 140
|
39
|
+
|
40
|
+
#
|
41
|
+
# This cop checks if the length of a method exceeds some maximum value.
|
42
|
+
#
|
43
|
+
Metrics/MethodLength:
|
44
|
+
Max: 15
|
45
|
+
|
46
|
+
#
|
47
|
+
# Checks for long examples.
|
48
|
+
#
|
49
|
+
RSpec/ExampleLength:
|
50
|
+
Max: 20
|
51
|
+
|
52
|
+
#
|
53
|
+
# This cop checks for consistent style when specifying RSpec hooks which run for each example.
|
54
|
+
#
|
55
|
+
# # bad
|
56
|
+
# before(:each) do
|
57
|
+
# ...
|
58
|
+
# end
|
59
|
+
#
|
60
|
+
# # bad
|
61
|
+
# before(:example) do
|
62
|
+
# ...
|
63
|
+
# end
|
64
|
+
#
|
65
|
+
# # good
|
66
|
+
# before do
|
67
|
+
# ...
|
68
|
+
# end
|
69
|
+
#
|
70
|
+
RSpec/HookArgument:
|
71
|
+
EnforcedStyle: implicit
|
72
|
+
|
73
|
+
#
|
74
|
+
# Checks if examples contain too many 'expect' calls.
|
75
|
+
#
|
76
|
+
RSpec/MultipleExpectations:
|
77
|
+
Max: 3
|
78
|
+
|
79
|
+
#
|
80
|
+
# Checks for consistent method usage for negating expectations.
|
81
|
+
#
|
82
|
+
RSpec/NotToNot:
|
83
|
+
EnforcedStyle: to_not
|
84
|
+
|
85
|
+
#
|
86
|
+
# Check that the keys, separators, and values of a multi-line hash literal are aligned according
|
87
|
+
# to configuration. With 'key' everything is left aligned.
|
88
|
+
#
|
89
|
+
Layout/HashAlignment:
|
90
|
+
EnforcedHashRocketStyle: key
|
91
|
+
EnforcedColonStyle: key
|
92
|
+
EnforcedLastArgumentHashStyle: always_ignore
|
93
|
+
|
94
|
+
#
|
95
|
+
# Here we check if the parameters on a multi-line method call or definition are aligned.
|
96
|
+
#
|
97
|
+
Layout/ParameterAlignment:
|
98
|
+
EnforcedStyle: with_fixed_indentation
|
99
|
+
|
100
|
+
#
|
101
|
+
# This cop checks how the 'whens' of a case expression are indented in relation to its 'case' or 'end' keyword.
|
102
|
+
#
|
103
|
+
Layout/CaseIndentation:
|
104
|
+
EnforcedStyle: end
|
105
|
+
IndentOneStep: true
|
106
|
+
|
107
|
+
#
|
108
|
+
# This cop checks for the formatting of empty method definitions. By default it enforces empty method definitions
|
109
|
+
# to go on a single line (compact style).
|
110
|
+
#
|
111
|
+
Style/EmptyMethod:
|
112
|
+
Exclude:
|
113
|
+
- 'db/migrate/*'
|
114
|
+
|
115
|
+
#
|
116
|
+
# This cop checks for a line break before the first element in a multi-line hash.
|
117
|
+
#
|
118
|
+
# # bad
|
119
|
+
# { a: 1,
|
120
|
+
# b: 2}
|
121
|
+
#
|
122
|
+
# # good
|
123
|
+
# {
|
124
|
+
# a: 1,
|
125
|
+
# b: 2 }
|
126
|
+
#
|
127
|
+
Layout/FirstHashElementLineBreak:
|
128
|
+
Enabled: true
|
129
|
+
|
130
|
+
#
|
131
|
+
# This cop checks for a line break before the first argument in a multi-line method call.
|
132
|
+
#
|
133
|
+
# # bad
|
134
|
+
# method(foo, bar,
|
135
|
+
# baz)
|
136
|
+
#
|
137
|
+
# # good
|
138
|
+
# method(
|
139
|
+
# foo, bar,
|
140
|
+
# baz)
|
141
|
+
#
|
142
|
+
# # ignored
|
143
|
+
# method foo, bar,
|
144
|
+
# baz
|
145
|
+
#
|
146
|
+
Layout/FirstMethodArgumentLineBreak:
|
147
|
+
Enabled: true
|
148
|
+
|
149
|
+
#
|
150
|
+
# This cop checks for uses of the lambda literal syntax.
|
151
|
+
#
|
152
|
+
# # literal
|
153
|
+
# f = ->(x) { x }
|
154
|
+
# f = ->(x) do
|
155
|
+
# x
|
156
|
+
# end
|
157
|
+
#
|
158
|
+
Style/Lambda:
|
159
|
+
EnforcedStyle: literal
|
160
|
+
|
161
|
+
#
|
162
|
+
# This cop checks presence of parentheses in method calls containing parameters. As in popular Ruby's frameworks a lot
|
163
|
+
# of methods should always be called without parentheses, users can ignore them by passing their names to IgnoredMethods
|
164
|
+
# option.
|
165
|
+
#
|
166
|
+
# # bad
|
167
|
+
# array.delete e
|
168
|
+
#
|
169
|
+
# # good
|
170
|
+
# array.delete(e)
|
171
|
+
#
|
172
|
+
# # good if `puts` is listed in IgnoredMethods
|
173
|
+
# puts 'test'
|
174
|
+
#
|
175
|
+
Style/MethodCallWithArgsParentheses:
|
176
|
+
Enabled: true
|
177
|
+
IgnoredMethods:
|
178
|
+
- add_development_dependency
|
179
|
+
- after_initialize
|
180
|
+
- assert
|
181
|
+
- assert_contents
|
182
|
+
- assert_empty
|
183
|
+
- assert_equal
|
184
|
+
- assert_held
|
185
|
+
- assert_nil
|
186
|
+
- assert_presence_of
|
187
|
+
- assert_raises
|
188
|
+
- assert_should_strip_whitespace
|
189
|
+
- assert_time_within
|
190
|
+
- attr_accessor
|
191
|
+
- attr_reader
|
192
|
+
- attr_writer
|
193
|
+
- attribute
|
194
|
+
- autocomplete_for
|
195
|
+
- before_action
|
196
|
+
- belongs_to
|
197
|
+
- column
|
198
|
+
- delegate
|
199
|
+
- describe
|
200
|
+
- extend
|
201
|
+
- field
|
202
|
+
- guard
|
203
|
+
- gem
|
204
|
+
- goto
|
205
|
+
- has_many
|
206
|
+
- in_line_ajax_action
|
207
|
+
- include
|
208
|
+
- it
|
209
|
+
- it_behaves_like
|
210
|
+
- link
|
211
|
+
- puts
|
212
|
+
- raise
|
213
|
+
- redefine_const
|
214
|
+
- redirect_to
|
215
|
+
- render
|
216
|
+
- require
|
217
|
+
- require_relative
|
218
|
+
- ruby
|
219
|
+
- scope
|
220
|
+
- should
|
221
|
+
- source
|
222
|
+
- task
|
223
|
+
- to
|
224
|
+
- to_not
|
225
|
+
- validate
|
226
|
+
- validates
|
227
|
+
- validates_numericality_of
|
228
|
+
- validates_presence_of
|
229
|
+
- within
|
230
|
+
|
231
|
+
#
|
232
|
+
# This cop checks that closing brace of a multi-line method call must be on the line after the last
|
233
|
+
# argument of the call.
|
234
|
+
#
|
235
|
+
# # symmetrical: bad
|
236
|
+
# # new_line: good
|
237
|
+
# # same_line: bad
|
238
|
+
# foo(a,
|
239
|
+
# b
|
240
|
+
# )
|
241
|
+
#
|
242
|
+
# # symmetrical: bad
|
243
|
+
# # new_line: bad
|
244
|
+
# # same_line: good
|
245
|
+
# foo(
|
246
|
+
# a,
|
247
|
+
# b)
|
248
|
+
#
|
249
|
+
# # symmetrical: good
|
250
|
+
# # new_line: bad
|
251
|
+
# # same_line: good
|
252
|
+
# foo(a,
|
253
|
+
# b)
|
254
|
+
#
|
255
|
+
# # symmetrical: good
|
256
|
+
# # new_line: good
|
257
|
+
# # same_line: bad
|
258
|
+
# foo(
|
259
|
+
# a,
|
260
|
+
# b
|
261
|
+
# )
|
262
|
+
#
|
263
|
+
Layout/MultilineMethodCallBraceLayout:
|
264
|
+
EnforcedStyle: new_line
|
265
|
+
|
266
|
+
#
|
267
|
+
# This cop checks the indentation of the method name part in method calls that span more than one line.
|
268
|
+
#
|
269
|
+
# # good
|
270
|
+
# while a
|
271
|
+
# .b
|
272
|
+
# something
|
273
|
+
# end
|
274
|
+
#
|
275
|
+
Layout/MultilineMethodCallIndentation:
|
276
|
+
EnforcedStyle: indented
|
277
|
+
|
278
|
+
#
|
279
|
+
# This cop looks for uses of Perl-style global variables.
|
280
|
+
#
|
281
|
+
Style/SpecialGlobalVars:
|
282
|
+
EnforcedStyle: use_english_names
|
283
|
+
|
284
|
+
#
|
285
|
+
# Checks if uses of quotes match the configured preference.
|
286
|
+
#
|
287
|
+
Style/StringLiterals:
|
288
|
+
EnforcedStyle: double_quotes
|
289
|
+
|
290
|
+
#
|
291
|
+
# This cop makes sure that all numbered variables use snake_case for their numbering.
|
292
|
+
#
|
293
|
+
# # bad
|
294
|
+
# variable1 = 1
|
295
|
+
#
|
296
|
+
# # good
|
297
|
+
# variable_1 = 1
|
298
|
+
#
|
299
|
+
Naming/VariableNumber:
|
300
|
+
EnforcedStyle: snake_case
|
data/.rubocop.yml
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6.6
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,37 +1,106 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mikado_graph_generator (0.
|
4
|
+
mikado_graph_generator (0.4.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
ast (2.4.1)
|
10
|
+
coderay (1.1.3)
|
9
11
|
diff-lcs (1.3)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
ffi (1.13.1)
|
13
|
+
formatador (0.2.5)
|
14
|
+
guard (2.16.2)
|
15
|
+
formatador (>= 0.2.4)
|
16
|
+
listen (>= 2.7, < 4.0)
|
17
|
+
lumberjack (>= 1.0.12, < 2.0)
|
18
|
+
nenv (~> 0.1)
|
19
|
+
notiffany (~> 0.0)
|
20
|
+
pry (>= 0.9.12)
|
21
|
+
shellany (~> 0.0)
|
22
|
+
thor (>= 0.18.1)
|
23
|
+
guard-bundler (3.0.0)
|
24
|
+
bundler (>= 2.1, < 3)
|
25
|
+
guard (~> 2.2)
|
26
|
+
guard-compat (~> 1.1)
|
27
|
+
guard-compat (1.2.1)
|
28
|
+
guard-rspec (4.7.3)
|
29
|
+
guard (~> 2.1)
|
30
|
+
guard-compat (~> 1.1)
|
31
|
+
rspec (>= 2.99.0, < 4.0)
|
32
|
+
guard-rubocop (1.3.0)
|
33
|
+
guard (~> 2.0)
|
34
|
+
rubocop (~> 0.20)
|
35
|
+
listen (3.2.1)
|
36
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
37
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
38
|
+
lumberjack (1.2.5)
|
39
|
+
method_source (1.0.0)
|
40
|
+
nenv (0.3.0)
|
41
|
+
notiffany (0.1.3)
|
42
|
+
nenv (~> 0.1)
|
43
|
+
shellany (~> 0.0)
|
44
|
+
parallel (1.19.1)
|
45
|
+
parser (2.7.1.3)
|
46
|
+
ast (~> 2.4.0)
|
47
|
+
pry (0.13.1)
|
48
|
+
coderay (~> 1.1)
|
49
|
+
method_source (~> 1.0)
|
50
|
+
rainbow (3.0.0)
|
51
|
+
rake (13.0.1)
|
52
|
+
rb-fsevent (0.10.4)
|
53
|
+
rb-inotify (0.10.1)
|
54
|
+
ffi (~> 1.0)
|
55
|
+
regexp_parser (1.7.1)
|
56
|
+
rexml (3.2.4)
|
57
|
+
rspec (3.9.0)
|
58
|
+
rspec-core (~> 3.9.0)
|
59
|
+
rspec-expectations (~> 3.9.0)
|
60
|
+
rspec-mocks (~> 3.9.0)
|
61
|
+
rspec-core (3.9.2)
|
62
|
+
rspec-support (~> 3.9.3)
|
63
|
+
rspec-expectations (3.9.2)
|
18
64
|
diff-lcs (>= 1.2.0, < 2.0)
|
19
|
-
rspec-support (~> 3.
|
20
|
-
rspec-mocks (3.
|
65
|
+
rspec-support (~> 3.9.0)
|
66
|
+
rspec-mocks (3.9.1)
|
21
67
|
diff-lcs (>= 1.2.0, < 2.0)
|
22
|
-
rspec-support (~> 3.
|
23
|
-
rspec-support (3.
|
24
|
-
|
68
|
+
rspec-support (~> 3.9.0)
|
69
|
+
rspec-support (3.9.3)
|
70
|
+
rubocop (0.85.1)
|
71
|
+
parallel (~> 1.10)
|
72
|
+
parser (>= 2.7.0.1)
|
73
|
+
rainbow (>= 2.2.2, < 4.0)
|
74
|
+
regexp_parser (>= 1.7)
|
75
|
+
rexml
|
76
|
+
rubocop-ast (>= 0.0.3)
|
77
|
+
ruby-progressbar (~> 1.7)
|
78
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
79
|
+
rubocop-ast (0.0.3)
|
80
|
+
parser (>= 2.7.0.1)
|
81
|
+
rubocop-rspec (1.40.0)
|
82
|
+
rubocop (>= 0.68.1)
|
83
|
+
ruby-graphviz (1.2.5)
|
84
|
+
rexml
|
85
|
+
ruby-progressbar (1.10.1)
|
86
|
+
shellany (0.0.1)
|
87
|
+
thor (1.0.1)
|
88
|
+
unicode-display_width (1.7.0)
|
25
89
|
|
26
90
|
PLATFORMS
|
27
91
|
ruby
|
28
92
|
|
29
93
|
DEPENDENCIES
|
30
|
-
bundler (~> 1.
|
94
|
+
bundler (~> 2.1.4)
|
95
|
+
guard-bundler
|
96
|
+
guard-rspec
|
97
|
+
guard-rubocop
|
31
98
|
mikado_graph_generator!
|
32
|
-
rake (~>
|
99
|
+
rake (~> 13.0)
|
33
100
|
rspec (~> 3.0)
|
34
|
-
|
101
|
+
rubocop (~> 0.52)
|
102
|
+
rubocop-rspec (~> 1.21)
|
103
|
+
ruby-graphviz (~> 1.2)
|
35
104
|
|
36
105
|
BUNDLED WITH
|
37
|
-
1.
|
106
|
+
2.1.4
|
data/Guardfile
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
## Uncomment and set this to only include directories you want to watch
|
5
|
+
# directories %w(app processing config test spec features) \
|
6
|
+
# .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
|
7
|
+
|
8
|
+
## Note: if you are using the `directories` clause above and you are not
|
9
|
+
## watching the project directory ('.'), then you will want to move
|
10
|
+
## the Guardfile to a watched dir and symlink it back, e.g.
|
11
|
+
#
|
12
|
+
# $ mkdir config
|
13
|
+
# $ mv Guardfile config/
|
14
|
+
# $ ln -s config/Guardfile .
|
15
|
+
#
|
16
|
+
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
17
|
+
|
18
|
+
guard :bundler do
|
19
|
+
require "guard/bundler"
|
20
|
+
require "guard/bundler/verify"
|
21
|
+
helper = Guard::Bundler::Verify.new
|
22
|
+
|
23
|
+
files = ["Gemfile"]
|
24
|
+
files += Dir["*.gemspec"] if files.any? { |f| helper.uses_gemspec?(f) }
|
25
|
+
|
26
|
+
# Assume files are symlinked from somewhere
|
27
|
+
files.each { |file| watch(helper.real_path(file)) }
|
28
|
+
end
|
29
|
+
|
30
|
+
# Note: The cmd option is now required due to the increasing number of ways
|
31
|
+
# rspec may be run, below are examples of the most common uses.
|
32
|
+
# * bundler: 'bundle exec rspec'
|
33
|
+
# * bundler binstubs: 'bin/rspec'
|
34
|
+
# * spring: 'bin/rspec' (This will use spring if running and you have
|
35
|
+
# installed the spring binstubs per the docs)
|
36
|
+
# * zeus: 'zeus rspec' (requires the server to be started separately)
|
37
|
+
# * 'just' rspec: 'rspec'
|
38
|
+
|
39
|
+
guard :rspec, cmd: "bundle exec rspec" do
|
40
|
+
require "guard/rspec/dsl"
|
41
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
42
|
+
|
43
|
+
# Feel free to open issues for suggestions and improvements
|
44
|
+
|
45
|
+
# RSpec files
|
46
|
+
rspec = dsl.rspec
|
47
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
48
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
49
|
+
watch(rspec.spec_files)
|
50
|
+
|
51
|
+
watch(/.+\.rb$/)
|
52
|
+
end
|
53
|
+
|
54
|
+
guard :rubocop, cli: ["-S", "-D"] do
|
55
|
+
watch(/.+\.rb$/)
|
56
|
+
end
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Mikado Graph Generator [](https://badge.fury.io/rb/mikado_graph_generator) [](https://travis-ci.org/snasirca/mikado-graph-generator) [](https://codeclimate.com/github/snasirca/mikado-graph-generator/maintainability)
|
2
2
|
|
3
3
|
Welcome to a DSL for creating Mikado Graphs using *GraphViz*.
|
4
4
|
|
@@ -34,40 +34,72 @@ You can use this gem's DSL in the following way to create a Mikado Graph generat
|
|
34
34
|
require "mikado_graph"
|
35
35
|
|
36
36
|
MikadoGraph::Generator.define do
|
37
|
-
state("State A").
|
38
|
-
state("State B").
|
37
|
+
state("State A").with_prerequisites do
|
38
|
+
state("State B").with_prerequisites do
|
39
39
|
state("State D")
|
40
40
|
state("State E")
|
41
|
-
|
42
|
-
state("State C").
|
41
|
+
end
|
42
|
+
state("State C").with_prerequisites do
|
43
43
|
state("State F")
|
44
44
|
state("State G")
|
45
|
-
|
46
|
-
|
47
|
-
end.generate("png", "img/
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end.generate("png", "img/example_usage_vertical.png") # generate takes GraphViz format and output path
|
48
48
|
```
|
49
49
|
|
50
|
-
|
50
|
+
> You can also use the shorthand `with_prereqs` instead of `with_prerequisites` for defining prerequisite
|
51
|
+
dependencies between states.
|
52
|
+
|
53
|
+
Save this file to `example_usage_vertical.rb` and then you can then execute this file in the terminal using:
|
51
54
|
|
52
55
|
```bash
|
53
|
-
ruby
|
56
|
+
ruby example_usage_vertical.rb
|
54
57
|
```
|
55
58
|
|
56
|
-
This will utilize
|
59
|
+
This will utilize *GraphViz* to create this PNG output of the above Mikado Graph generator definition:
|
57
60
|
|
58
|
-

|
59
62
|
|
60
63
|
NOTE: If you don't provide any parameters to `generate`, it'll default to a `dot` output in the STDOUT.
|
61
64
|
|
65
|
+
If you want to instead do a horizontal orientation of your graph, simply provide the direction flag to `#generate` like so:
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
generate(direction: :horizontal)
|
69
|
+
```
|
70
|
+
|
71
|
+
Here is an example usage:
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
require "mikado_graph"
|
75
|
+
|
76
|
+
MikadoGraph::Generator.define do
|
77
|
+
state("State A").with_prerequisites do
|
78
|
+
state("State B").with_prerequisites do
|
79
|
+
state("State D")
|
80
|
+
state("State E")
|
81
|
+
end
|
82
|
+
state("State C").with_prerequisites do
|
83
|
+
state("State F")
|
84
|
+
state("State G")
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end.generate(format: "png", path: "img/example_usage_horizontal.png", direction: :horizontal)
|
88
|
+
```
|
89
|
+
|
90
|
+
This will generate this graph:
|
91
|
+
|
92
|
+

|
93
|
+
|
62
94
|
## Development
|
63
95
|
|
64
96
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
65
97
|
|
66
|
-
|
98
|
+
Use `direnv` to speed development.
|
67
99
|
|
68
100
|
## Contributing
|
69
101
|
|
70
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/snasirca/
|
102
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/snasirca/mikado-graph-generator. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
71
103
|
|
72
104
|
## License
|
73
105
|
|
data/Rakefile
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require "mikado_graph"
|
2
|
+
|
3
|
+
MikadoGraph::Generator.define do
|
4
|
+
state("State A").with_prerequisites do
|
5
|
+
state("State B").with_prerequisites do
|
6
|
+
state("State D")
|
7
|
+
state("State E")
|
8
|
+
end
|
9
|
+
state("State C").with_prerequisites do
|
10
|
+
state("State F")
|
11
|
+
state("State G")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end.generate(format: "png", path: "img/example_usage_horizontal.png", direction: :horizontal)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "mikado_graph"
|
2
|
+
|
3
|
+
MikadoGraph::Generator.define do
|
4
|
+
state("State A").with_prerequisites do
|
5
|
+
state("State B").with_prerequisites do
|
6
|
+
state("State D")
|
7
|
+
state("State E")
|
8
|
+
end
|
9
|
+
state("State C").with_prerequisites do
|
10
|
+
state("State F")
|
11
|
+
state("State G")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end.generate(format: "png", path: "img/example_usage_vertical.png")
|
data/lib/mikado_graph.rb
CHANGED
@@ -2,49 +2,59 @@ require "graphviz"
|
|
2
2
|
|
3
3
|
module MikadoGraph
|
4
4
|
class Generator
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :prerequisites, :graph
|
6
6
|
|
7
7
|
def self.define(&block)
|
8
8
|
generator_instance = new
|
9
|
-
generator_instance.
|
9
|
+
generator_instance.prerequisites.instance_eval(&block)
|
10
10
|
generator_instance
|
11
11
|
end
|
12
12
|
|
13
|
-
def generate(
|
14
|
-
add_states_to_graph(
|
15
|
-
|
16
|
-
output_options
|
13
|
+
def generate(options = {})
|
14
|
+
add_states_to_graph(prerequisites.states)
|
15
|
+
arrange_graph_direction(options)
|
16
|
+
output_options = build_output_options(options)
|
17
17
|
graph.output(output_options)
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
21
21
|
|
22
22
|
def initialize
|
23
|
-
@
|
23
|
+
@prerequisites = Prerequisites.new
|
24
24
|
initialize_graph
|
25
25
|
end
|
26
26
|
|
27
27
|
def initialize_graph
|
28
28
|
@graph = GraphViz.new(nil)
|
29
|
-
@graph[:rankdir] = "LR"
|
30
29
|
@graph.node[:shape] = "box"
|
31
30
|
end
|
32
31
|
|
33
32
|
def add_states_to_graph(states)
|
34
|
-
states.each { |state|
|
33
|
+
states.each { |state| add_state_prerequisites(state) }
|
35
34
|
end
|
36
35
|
|
37
|
-
def
|
38
|
-
state.
|
39
|
-
|
40
|
-
|
36
|
+
def add_state_prerequisites(state)
|
37
|
+
state.prerequisite_states.each do |prerequisite_state|
|
38
|
+
add_prerequisite_dependency(state, prerequisite_state)
|
39
|
+
add_state_prerequisites(prerequisite_state)
|
41
40
|
end
|
42
41
|
end
|
43
42
|
|
44
|
-
def
|
43
|
+
def add_prerequisite_dependency(state, dependent_state)
|
45
44
|
state_node = graph.add_nodes(state.name)
|
46
45
|
dependent_state_node = graph.add_nodes(dependent_state.name)
|
47
|
-
graph.add_edges(
|
46
|
+
graph.add_edges(state_node, dependent_state_node)
|
47
|
+
end
|
48
|
+
|
49
|
+
def arrange_graph_direction(options)
|
50
|
+
direction = options.fetch(:direction, :vertical)
|
51
|
+
graph[:rankdir] = "LR" if direction == :horizontal
|
52
|
+
end
|
53
|
+
|
54
|
+
def build_output_options(options)
|
55
|
+
output_options = {}
|
56
|
+
output_options[options.fetch(:format, "dot")] = options.fetch(:path, nil)
|
57
|
+
output_options
|
48
58
|
end
|
49
59
|
end
|
50
60
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module MikadoGraph
|
2
|
-
class
|
3
|
-
attr_reader :
|
2
|
+
class Prerequisites
|
3
|
+
attr_reader :states
|
4
4
|
|
5
5
|
def initialize
|
6
|
-
@
|
6
|
+
@states = []
|
7
7
|
end
|
8
8
|
|
9
9
|
def state(state_name)
|
10
10
|
new_state = State.new(state_name)
|
11
|
-
|
11
|
+
states << new_state
|
12
12
|
new_state
|
13
13
|
end
|
14
14
|
end
|
data/lib/mikado_graph/state.rb
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
module MikadoGraph
|
2
2
|
class State
|
3
|
-
attr_reader :name
|
3
|
+
attr_reader :name, :prerequisite_states
|
4
4
|
|
5
5
|
def initialize(name)
|
6
6
|
@name = name
|
7
|
+
@prerequisite_states = []
|
7
8
|
end
|
8
9
|
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
@
|
13
|
-
end
|
14
|
-
|
15
|
-
def dependent_states
|
16
|
-
@dependent_states || []
|
10
|
+
def with_prerequisites(&block)
|
11
|
+
prerequisites = Prerequisites.new
|
12
|
+
prerequisites.instance_eval(&block)
|
13
|
+
@prerequisite_states = prerequisites.states
|
17
14
|
end
|
15
|
+
alias with_prereqs with_prerequisites
|
18
16
|
|
19
17
|
def to_s
|
20
18
|
name
|
data/lib/mikado_graph/version.rb
CHANGED
data/mikado_graph.gemspec
CHANGED
@@ -1,26 +1,31 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
2
|
+
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require "mikado_graph/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name
|
8
|
-
spec.version
|
9
|
-
spec.authors
|
10
|
-
spec.email
|
7
|
+
spec.name = "mikado_graph_generator"
|
8
|
+
spec.version = MikadoGraph::VERSION
|
9
|
+
spec.authors = ["Shahriyar Nasir"]
|
10
|
+
spec.email = ["contact@snasir.ca"]
|
11
11
|
|
12
|
-
spec.summary
|
13
|
-
spec.description
|
14
|
-
spec.homepage
|
15
|
-
spec.license
|
12
|
+
spec.summary = "Mikado Graph generator"
|
13
|
+
spec.description = "Provides a simple DSL for generating Mikado Graphs using GraphViz."
|
14
|
+
spec.homepage = "https://github.com/snasirca/mikado_graph_generator"
|
15
|
+
spec.license = "MIT"
|
16
16
|
|
17
|
-
spec.files
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
18
|
f.match(%r{^(test|spec|features)/})
|
19
19
|
end
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_development_dependency "bundler", "~> 1.
|
23
|
-
spec.add_development_dependency "
|
22
|
+
spec.add_development_dependency "bundler", "~> 2.1.4"
|
23
|
+
spec.add_development_dependency "guard-bundler"
|
24
|
+
spec.add_development_dependency "guard-rspec"
|
25
|
+
spec.add_development_dependency "guard-rubocop"
|
26
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
24
27
|
spec.add_development_dependency "rspec", "~> 3.0"
|
25
|
-
spec.add_development_dependency "
|
28
|
+
spec.add_development_dependency "rubocop", "~> 0.52"
|
29
|
+
spec.add_development_dependency "rubocop-rspec", "~> 1.21"
|
30
|
+
spec.add_development_dependency "ruby-graphviz", "~> 1.2"
|
26
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mikado_graph_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shahriyar Nasir
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,28 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.1.4
|
20
20
|
type: :development
|
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:
|
26
|
+
version: 2.1.4
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: guard-bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: guard-rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard-rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
27
69
|
- !ruby/object:Gem::Dependency
|
28
70
|
name: rake
|
29
71
|
requirement: !ruby/object:Gem::Requirement
|
30
72
|
requirements:
|
31
73
|
- - "~>"
|
32
74
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
75
|
+
version: '13.0'
|
34
76
|
type: :development
|
35
77
|
prerelease: false
|
36
78
|
version_requirements: !ruby/object:Gem::Requirement
|
37
79
|
requirements:
|
38
80
|
- - "~>"
|
39
81
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
82
|
+
version: '13.0'
|
41
83
|
- !ruby/object:Gem::Dependency
|
42
84
|
name: rspec
|
43
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,20 +94,48 @@ dependencies:
|
|
52
94
|
- - "~>"
|
53
95
|
- !ruby/object:Gem::Version
|
54
96
|
version: '3.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.52'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.52'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.21'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.21'
|
55
125
|
- !ruby/object:Gem::Dependency
|
56
126
|
name: ruby-graphviz
|
57
127
|
requirement: !ruby/object:Gem::Requirement
|
58
128
|
requirements:
|
59
|
-
- - "
|
129
|
+
- - "~>"
|
60
130
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
131
|
+
version: '1.2'
|
62
132
|
type: :development
|
63
133
|
prerelease: false
|
64
134
|
version_requirements: !ruby/object:Gem::Requirement
|
65
135
|
requirements:
|
66
|
-
- - "
|
136
|
+
- - "~>"
|
67
137
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
138
|
+
version: '1.2'
|
69
139
|
description: Provides a simple DSL for generating Mikado Graphs using GraphViz.
|
70
140
|
email:
|
71
141
|
- contact@snasir.ca
|
@@ -74,20 +144,31 @@ extensions: []
|
|
74
144
|
extra_rdoc_files: []
|
75
145
|
files:
|
76
146
|
- ".editorconfig"
|
147
|
+
- ".envrc"
|
148
|
+
- ".envrc.sample"
|
77
149
|
- ".gitignore"
|
78
150
|
- ".rspec"
|
151
|
+
- ".rubocop"
|
152
|
+
- ".rubocop.disabled.yml"
|
153
|
+
- ".rubocop.enabled.yml"
|
154
|
+
- ".rubocop.yml"
|
155
|
+
- ".ruby-version"
|
79
156
|
- ".travis.yml"
|
80
157
|
- Gemfile
|
81
158
|
- Gemfile.lock
|
159
|
+
- Guardfile
|
82
160
|
- LICENSE.txt
|
83
161
|
- README.md
|
84
162
|
- Rakefile
|
85
163
|
- bin/console
|
86
164
|
- bin/setup
|
87
|
-
-
|
165
|
+
- example_usage_horizontal.rb
|
166
|
+
- example_usage_vertical.rb
|
167
|
+
- img/example_usage_horizontal.png
|
168
|
+
- img/example_usage_vertical.png
|
88
169
|
- lib/mikado_graph.rb
|
89
|
-
- lib/mikado_graph/dependencies.rb
|
90
170
|
- lib/mikado_graph/generator.rb
|
171
|
+
- lib/mikado_graph/prerequisites.rb
|
91
172
|
- lib/mikado_graph/state.rb
|
92
173
|
- lib/mikado_graph/version.rb
|
93
174
|
- mikado_graph.gemspec
|
@@ -95,7 +176,7 @@ homepage: https://github.com/snasirca/mikado_graph_generator
|
|
95
176
|
licenses:
|
96
177
|
- MIT
|
97
178
|
metadata: {}
|
98
|
-
post_install_message:
|
179
|
+
post_install_message:
|
99
180
|
rdoc_options: []
|
100
181
|
require_paths:
|
101
182
|
- lib
|
@@ -110,9 +191,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
191
|
- !ruby/object:Gem::Version
|
111
192
|
version: '0'
|
112
193
|
requirements: []
|
113
|
-
|
114
|
-
|
115
|
-
signing_key:
|
194
|
+
rubygems_version: 3.1.2
|
195
|
+
signing_key:
|
116
196
|
specification_version: 4
|
117
197
|
summary: Mikado Graph generator
|
118
198
|
test_files: []
|
data/example_usage.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require "mikado_graph"
|
2
|
-
|
3
|
-
MikadoGraph::Generator.define do
|
4
|
-
state("State A").depends_on {
|
5
|
-
state("State B").depends_on {
|
6
|
-
state("State D")
|
7
|
-
state("State E")
|
8
|
-
}
|
9
|
-
state("State C").depends_on {
|
10
|
-
state("State F")
|
11
|
-
state("State G")
|
12
|
-
}
|
13
|
-
}
|
14
|
-
end.generate("png", "img/example_usage.png")
|