diver_down 0.0.1.alpha17 → 0.0.1.alpha18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/diver_down/version.rb +1 -1
- data/lib/diver_down/web/action.rb +40 -7
- data/lib/diver_down/web/definition_module_dependencies.rb +3 -5
- data/lib/diver_down/web/metadata/source_metadata.rb +35 -8
- data/lib/diver_down/web/metadata.rb +1 -0
- data/lib/diver_down/web.rb +12 -0
- data/web/assets/bundle.js +88 -92
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8bf67c52d7bafe08d7dfd22e48f2fedcec23c2d5410da3968d6e697edeaeb68b
|
4
|
+
data.tar.gz: 7319431059c715b0d83cf7b577522d47115ff1fe7d77ac04faa543355468f024
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 659ab2212ababae04182c7cdf23d56dfb79877aeab7ae4ff419c417f56602fc6c446bdf94ce338944abf28b6f01b720ba3cb595bb7006d9f6cf3479ceb785869
|
7
|
+
data.tar.gz: 71118322b5bb69d6014f72f545957bd401de06ef5f695fec7273a0465f34fce3cdfb699e4130d263c4fc1031475549f1b137f53ceeef894f2840212669308401
|
data/lib/diver_down/version.rb
CHANGED
@@ -124,6 +124,7 @@ module DiverDown
|
|
124
124
|
{
|
125
125
|
source_name: dependency.source_name,
|
126
126
|
module: @metadata.source(dependency.source_name).module,
|
127
|
+
dependency_type: @metadata.source(source.source_name).dependency_type(dependency.source_name),
|
127
128
|
method_ids: dependency.method_ids.sort.map do |method_id|
|
128
129
|
{
|
129
130
|
context: method_id.context,
|
@@ -144,13 +145,7 @@ module DiverDown
|
|
144
145
|
{
|
145
146
|
source_name: dependency.source_name,
|
146
147
|
module: @metadata.source(dependency.source_name).module,
|
147
|
-
|
148
|
-
{
|
149
|
-
context: method_id.context,
|
150
|
-
name: method_id.name,
|
151
|
-
paths: method_id.paths.sort,
|
152
|
-
}
|
153
|
-
end,
|
148
|
+
dependency_type: @metadata.source(source.source_name).dependency_type(dependency.source_name),
|
154
149
|
}
|
155
150
|
end,
|
156
151
|
}
|
@@ -191,6 +186,44 @@ module DiverDown
|
|
191
186
|
)
|
192
187
|
end
|
193
188
|
|
189
|
+
# POST /api/modules/:from_module/dependency_types/:to_module.json
|
190
|
+
def update_module_dependency_type(from_module, to_module, dependency_type)
|
191
|
+
module_dependency_map = fetch_module_dependency_map
|
192
|
+
|
193
|
+
unless module_dependency_map.key?(from_module) && module_dependency_map.key?(to_module)
|
194
|
+
return not_found
|
195
|
+
end
|
196
|
+
|
197
|
+
module_dependency = module_dependency_map.fetch(from_module)
|
198
|
+
module_dependency.sources.each do |source|
|
199
|
+
source_metadata = @metadata.source(source.source_name)
|
200
|
+
|
201
|
+
source.dependencies.each do |dependency|
|
202
|
+
next unless @metadata.source(dependency.source_name).module == to_module
|
203
|
+
|
204
|
+
source_metadata.update_dependency_type(dependency.source_name, dependency_type)
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
@metadata.flush
|
209
|
+
|
210
|
+
json({})
|
211
|
+
end
|
212
|
+
|
213
|
+
# POST /api/sources/:from_source_name/dependency_types/:to_source_name.json
|
214
|
+
def update_source_dependency_type(from_source_name, to_source_name, dependency_type)
|
215
|
+
source = @metadata.source(from_source_name)
|
216
|
+
|
217
|
+
begin
|
218
|
+
source.update_dependency_type(to_source_name, dependency_type)
|
219
|
+
rescue ArgumentError => e
|
220
|
+
return json_error(e.message)
|
221
|
+
end
|
222
|
+
|
223
|
+
@metadata.flush
|
224
|
+
json({})
|
225
|
+
end
|
226
|
+
|
194
227
|
# GET /api/pid.json
|
195
228
|
def pid
|
196
229
|
json(
|
@@ -64,11 +64,9 @@ module DiverDown
|
|
64
64
|
end
|
65
65
|
|
66
66
|
# Add source reverse dependencies
|
67
|
-
|
68
|
-
|
69
|
-
dependency.
|
70
|
-
definition_dependency.find_or_build_method_id(name: method_id.name, context: method_id.context).add_path(*method_id.paths)
|
71
|
-
end
|
67
|
+
# NOTE: Reverse dependencies's method_ids are not added because they are difficult to understand and not used.
|
68
|
+
definition_source = dependency_module_dependency.source_reverse_dependency_map[source.source_name] ||= DiverDown::Definition::Source.new(source_name: source.source_name)
|
69
|
+
definition_source.find_or_build_dependency(dependency.source_name)
|
72
70
|
end
|
73
71
|
end
|
74
72
|
|
@@ -9,13 +9,16 @@ module DiverDown
|
|
9
9
|
private_constant(:BLANK_MEMO)
|
10
10
|
private_constant(:BLANK_RE)
|
11
11
|
|
12
|
-
|
12
|
+
DEPENDENCY_TYPES = %w[valid invalid todo ignore].freeze
|
13
|
+
|
14
|
+
attr_reader :memo, :module, :dependency_types
|
13
15
|
|
14
16
|
# @param source_name [String]
|
15
17
|
# NOTE: `module` is a reserved keyword in Ruby
|
16
|
-
def initialize(memo: BLANK_MEMO, modulee: nil)
|
18
|
+
def initialize(memo: BLANK_MEMO, modulee: nil, dependency_types: {})
|
17
19
|
@memo = memo
|
18
20
|
@module = modulee
|
21
|
+
@dependency_types = dependency_types
|
19
22
|
end
|
20
23
|
|
21
24
|
# @param memo [String]
|
@@ -34,6 +37,35 @@ module DiverDown
|
|
34
37
|
end
|
35
38
|
end
|
36
39
|
|
40
|
+
# @param to_source [String]
|
41
|
+
# @return [String, nil]
|
42
|
+
def dependency_type(to_source)
|
43
|
+
@dependency_types[to_source]
|
44
|
+
end
|
45
|
+
|
46
|
+
# @param dependency_types [Hash]
|
47
|
+
# @return [void]
|
48
|
+
def dependency_types=(dependency_types)
|
49
|
+
@dependency_types.clear
|
50
|
+
|
51
|
+
dependency_types.each do |to_source, dependency_type|
|
52
|
+
update_dependency_type(to_source, dependency_type)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# @param to_source [String]
|
57
|
+
# @param dependency_type [String]
|
58
|
+
# @return [void]
|
59
|
+
def update_dependency_type(to_source, dependency_type)
|
60
|
+
if dependency_type.to_s.empty?
|
61
|
+
@dependency_types.delete(to_source)
|
62
|
+
else
|
63
|
+
raise ArgumentError, "invalid dependency_type: #{dependency_type}" unless DEPENDENCY_TYPES.include?(dependency_type)
|
64
|
+
|
65
|
+
@dependency_types[to_source] = dependency_type
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
37
69
|
# @return [Boolean]
|
38
70
|
def module?
|
39
71
|
!@module.nil?
|
@@ -45,15 +77,10 @@ module DiverDown
|
|
45
77
|
|
46
78
|
hash[:memo] = memo unless memo == BLANK_MEMO
|
47
79
|
hash[:module] = @module unless @module.nil?
|
80
|
+
hash[:dependency_types] = @dependency_types unless @dependency_types.empty?
|
48
81
|
|
49
82
|
hash
|
50
83
|
end
|
51
|
-
|
52
|
-
private
|
53
|
-
|
54
|
-
def by_source_name(source_name)
|
55
|
-
@store[source_name] ||= {}
|
56
|
-
end
|
57
84
|
end
|
58
85
|
end
|
59
86
|
end
|
@@ -54,6 +54,7 @@ module DiverDown
|
|
54
54
|
loaded[:sources]&.each do |source_name, source_hash|
|
55
55
|
source(source_name).memo = source_hash[:memo] if source_hash[:memo]
|
56
56
|
source(source_name).module = source_hash[:module] if source_hash[:module]
|
57
|
+
source(source_name).dependency_types = source_hash[:dependency_types] if source_hash[:dependency_types]
|
57
58
|
end
|
58
59
|
|
59
60
|
loaded[:source_alias]&.each do |alias_name, source_names|
|
data/lib/diver_down/web.rb
CHANGED
@@ -88,6 +88,18 @@ module DiverDown
|
|
88
88
|
source = Regexp.last_match[:source]
|
89
89
|
memo = request.params['memo'] || ''
|
90
90
|
@action.set_memo(source, memo)
|
91
|
+
in ['POST', %r{\A/api/modules/(?<from_module>[^/]+)/dependency_types/(?<to_module>[^/]+)\.json\z}]
|
92
|
+
from_module = CGI.unescape(Regexp.last_match[:from_module])
|
93
|
+
to_module = CGI.unescape(Regexp.last_match[:to_module])
|
94
|
+
dependency_type = request.params['dependency_type']
|
95
|
+
|
96
|
+
@action.update_module_dependency_type(from_module, to_module, dependency_type)
|
97
|
+
in ['POST', %r{\A/api/sources/(?<from_source>[^/]+)/dependency_types/(?<to_source>[^/]+)\.json\z}]
|
98
|
+
from_source = Regexp.last_match[:from_source]
|
99
|
+
to_source = Regexp.last_match[:to_source]
|
100
|
+
dependency_type = request.params['dependency_type']
|
101
|
+
|
102
|
+
@action.update_source_dependency_type(from_source, to_source, dependency_type)
|
91
103
|
in ['GET', %r{\A/api/pid\.json\z}]
|
92
104
|
@action.pid
|
93
105
|
in ['GET', %r{\A/api/initialization_status\.json\z}]
|