diver_down 0.0.1.alpha17 → 0.0.1.alpha18
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/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}]
|