rubrowser 2.7.1 → 2.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +6 -0
- data/.rubrowser +1 -1
- data/.travis.yml +2 -5
- data/Gemfile.lock +46 -38
- data/bin/rubrowser +7 -3
- data/lib/rubrowser/channel.rb +1 -1
- data/lib/rubrowser/connection.rb +2 -2
- data/lib/rubrowser/data.rb +3 -5
- data/lib/rubrowser/monitor.rb +1 -2
- data/lib/rubrowser/parser/definition/base.rb +4 -0
- data/lib/rubrowser/parser/file.rb +7 -5
- data/lib/rubrowser/parser/relation/base.rb +2 -2
- data/lib/rubrowser/renderer.rb +7 -1
- data/lib/rubrowser/server.rb +4 -5
- data/lib/rubrowser/trace.rb +1 -1
- data/lib/rubrowser/version.rb +1 -1
- data/readme.md +11 -3
- data/rubrowser.gemspec +10 -9
- metadata +26 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 14f3825970f46217df0193e3425f012e3ec93847e7a36c5ae4fe8668655e74e9
|
4
|
+
data.tar.gz: 3b3659e25fc28e75af88ebbebfde7f9510caa1f79bc994e4cc01c4d90101e215
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0caba3869ea075fd1bcd94b2bdcc01198c5a23801cd5197b46a2cee8c4d84b40397fcdc8e920d8e57fa07d7f06f989380736fc69dbdc6dfbbd452bf3b8a63712
|
7
|
+
data.tar.gz: 53daf996193145e55920247ec4622badefa427e0c5b0a486e0a990952d222ea6164a099fa6013c9838acb28ae36dc6179db081d102d8dca9590e357f6d046e5a
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.5
|
1
3
|
Metrics/BlockLength:
|
2
4
|
Exclude:
|
3
5
|
- 'spec/**/*_spec.rb'
|
@@ -5,3 +7,7 @@ Style/Documentation:
|
|
5
7
|
Enabled: false
|
6
8
|
Style/FrozenStringLiteralComment:
|
7
9
|
Enabled: false
|
10
|
+
Style/GlobalVars:
|
11
|
+
Enabled: false
|
12
|
+
Metrics/BlockLength:
|
13
|
+
Enabled: false
|
data/.rubrowser
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[{"id":"Rubrowser::Data","x":905.0088057752334,"y":437.04147016200284},{"id":"Rubrowser","x":712.6220053486966,"y":770.3251873644217},{"id":"Rubrowser::
|
1
|
+
[{"id":"A","x":3145.151252107328,"y":1255.7202242818169},{"id":"B","x":3041.815436574058,"y":1133.5156582815155},{"id":"C","x":3199.274701857475,"y":1105.1153162475819},{"id":"ClassWithOneClassDependency","x":1557.2872222716092,"y":-43.47687773940923},{"id":"ModuleWithNoRelations","x":1306.9528557451522,"y":1102.2650375990502},{"id":"ClassWithOneIncludedMixin","x":1498.1264029065396,"y":1151.463703990889},{"id":"ClassWithOneExtendedMixin","x":1505.8925222231119,"y":1066.3427953527182},{"id":"ModuleWithOneClassDependency","x":1506.2730755201367,"y":108.22508398850451},{"id":"ClassWithNoRelations","x":1400.4239271808685,"y":-11.760907506717134},{"id":"Rubrowser::Data","x":905.0088057752334,"y":437.04147016200284},{"id":"Rubrowser","x":712.6220053486966,"y":770.3251873644217},{"id":"Rubrowser::Trace","x":197.20494882540459,"y":735.0751347963624},{"id":"Rubrowser::Monitor","x":430.7305845891392,"y":680.3256207864202},{"id":"Graph","x":1115.7752854976002,"y":436.6211350242928},{"id":"Rubrowser::Connection","x":4.873283667279907,"y":680.4067753374231},{"id":"Rubrowser::Channel","x":1366.414402671432,"y":185.96446885474367},{"id":"Rubrowser::Renderer","x":905.2158605930458,"y":560.8807631671766},{"id":"Rubrowser::Server","x":208.96464998862217,"y":631.2323207047698},{"id":"Rubrowser::Formatter::JSON","x":1114.4368770370438,"y":560.0312580369882},{"id":"Rubrowser::Formatter","x":1113.6584254066838,"y":601.6487084046246},{"id":"Rubrowser::Parser::Definition::Module","x":188.36911863082037,"y":324.35744429623855},{"id":"Rubrowser::Parser::Definition","x":-191.1839782278871,"y":318.6377197576412},{"id":"Rubrowser::Parser","x":713.688310910547,"y":660.9646559993857},{"id":"Rubrowser::Parser::Definition::Base","x":-8.218934126737395,"y":322.74585638398685},{"id":"Rubrowser::Parser::Definition::Class","x":186.15033111747857,"y":246.30753307276427},{"id":"Rubrowser::Parser::Relation::Base","x":185.12905462589924,"y":402.5519743127113},{"id":"Rubrowser::Parser::Relation","x":187.0097719718301,"y":461.8654698954514},{"id":"Rubrowser::Parser::Factory","x":788.0050388528484,"y":325.70343641742613},{"id":"Rubrowser::Parser::File::Builder","x":506.8969046429671,"y":189.48025894394402},{"id":"Rubrowser::Parser::File","x":505.82216034587793,"y":322.6733725221146},{"id":"Rubrowser::Parser::Directory","x":786.9998045114313,"y":239.74214301898786}]
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,63 +1,71 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rubrowser (2.
|
4
|
+
rubrowser (2.11)
|
5
5
|
litecable
|
6
|
-
parser
|
6
|
+
parser
|
7
7
|
puma
|
8
8
|
websocket
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
anyway_config (1.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
rspec-
|
33
|
-
|
13
|
+
anyway_config (2.1.0)
|
14
|
+
ruby-next-core (>= 0.11.0)
|
15
|
+
ast (2.4.2)
|
16
|
+
byebug (11.1.3)
|
17
|
+
diff-lcs (1.4.4)
|
18
|
+
litecable (0.7.1)
|
19
|
+
anyway_config (>= 1.0)
|
20
|
+
nio4r (2.5.7)
|
21
|
+
parallel (1.20.1)
|
22
|
+
parser (3.0.1.0)
|
23
|
+
ast (~> 2.4.1)
|
24
|
+
puma (5.2.2)
|
25
|
+
nio4r (~> 2.0)
|
26
|
+
rainbow (3.0.0)
|
27
|
+
rake (13.0.3)
|
28
|
+
regexp_parser (2.1.1)
|
29
|
+
rexml (3.2.5)
|
30
|
+
rspec (3.10.0)
|
31
|
+
rspec-core (~> 3.10.0)
|
32
|
+
rspec-expectations (~> 3.10.0)
|
33
|
+
rspec-mocks (~> 3.10.0)
|
34
|
+
rspec-core (3.10.1)
|
35
|
+
rspec-support (~> 3.10.0)
|
36
|
+
rspec-expectations (3.10.1)
|
34
37
|
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
-
rspec-support (~> 3.
|
36
|
-
rspec-mocks (3.
|
38
|
+
rspec-support (~> 3.10.0)
|
39
|
+
rspec-mocks (3.10.2)
|
37
40
|
diff-lcs (>= 1.2.0, < 2.0)
|
38
|
-
rspec-support (~> 3.
|
39
|
-
rspec-support (3.
|
40
|
-
rubocop (
|
41
|
+
rspec-support (~> 3.10.0)
|
42
|
+
rspec-support (3.10.2)
|
43
|
+
rubocop (1.13.0)
|
41
44
|
parallel (~> 1.10)
|
42
|
-
parser (>=
|
43
|
-
|
44
|
-
|
45
|
+
parser (>= 3.0.0.0)
|
46
|
+
rainbow (>= 2.2.2, < 4.0)
|
47
|
+
regexp_parser (>= 1.8, < 3.0)
|
48
|
+
rexml
|
49
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
45
50
|
ruby-progressbar (~> 1.7)
|
46
|
-
unicode-display_width (
|
47
|
-
|
48
|
-
|
49
|
-
|
51
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
52
|
+
rubocop-ast (1.4.1)
|
53
|
+
parser (>= 2.7.1.5)
|
54
|
+
ruby-next-core (0.12.0)
|
55
|
+
ruby-progressbar (1.11.0)
|
56
|
+
unicode-display_width (2.0.0)
|
57
|
+
websocket (1.2.9)
|
50
58
|
|
51
59
|
PLATFORMS
|
52
60
|
ruby
|
53
61
|
|
54
62
|
DEPENDENCIES
|
55
|
-
bundler
|
63
|
+
bundler
|
56
64
|
byebug
|
57
|
-
rake
|
65
|
+
rake
|
58
66
|
rspec
|
59
67
|
rubocop
|
60
68
|
rubrowser!
|
61
69
|
|
62
70
|
BUNDLED WITH
|
63
|
-
|
71
|
+
2.2.16
|
data/bin/rubrowser
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
$LOAD_PATH.push File.expand_path('
|
2
|
+
$LOAD_PATH.push File.expand_path('../lib', __dir__)
|
3
3
|
|
4
4
|
require 'optparse'
|
5
5
|
require 'rubrowser'
|
@@ -8,11 +8,11 @@ require 'rubrowser/renderer'
|
|
8
8
|
options = {
|
9
9
|
toolbox: true,
|
10
10
|
layout: nil,
|
11
|
-
output:
|
11
|
+
output: $stdout
|
12
12
|
}
|
13
13
|
|
14
14
|
OptionParser.new do |opts|
|
15
|
-
opts.banner = "Usage: #{__FILE__} [options] [file] ..."
|
15
|
+
opts.banner = "Usage: #{File.basename(__FILE__)} [options] [file] ..."
|
16
16
|
|
17
17
|
opts.on(
|
18
18
|
'-oFILE',
|
@@ -36,6 +36,10 @@ OptionParser.new do |opts|
|
|
36
36
|
options[:toolbox] = false
|
37
37
|
end
|
38
38
|
|
39
|
+
opts.on('-j', '--json', 'Do export data as JSON instead of HTML') do
|
40
|
+
options[:json] = true
|
41
|
+
end
|
42
|
+
|
39
43
|
opts.on('-v', '--version', 'Print Rubrowser version') do
|
40
44
|
puts "Rubrowser #{Rubrowser::VERSION}"
|
41
45
|
exit
|
data/lib/rubrowser/channel.rb
CHANGED
data/lib/rubrowser/connection.rb
CHANGED
@@ -5,12 +5,12 @@ module Rubrowser
|
|
5
5
|
identified_by :id
|
6
6
|
|
7
7
|
def connect
|
8
|
-
@id = rand(
|
8
|
+
@id = rand(100_000)
|
9
9
|
self.class.initiate_reader
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.initiate_reader
|
13
|
-
@
|
13
|
+
@initiate_reader ||= Thread.new do
|
14
14
|
$rd.each_line do |line|
|
15
15
|
LiteCable.broadcast('classes', message: line.strip)
|
16
16
|
end
|
data/lib/rubrowser/data.rb
CHANGED
@@ -15,14 +15,14 @@ module Rubrowser
|
|
15
15
|
def parse
|
16
16
|
parsers.each(&:parse)
|
17
17
|
|
18
|
-
@definitions ||= parsers.map(&:definitions).reduce(:+).to_a
|
18
|
+
@definitions ||= parsers.map(&:definitions).reduce(:+).sort { |a, b| b <=> a }.to_a
|
19
19
|
@relations ||= parsers.map(&:relations).reduce(:+).to_a
|
20
20
|
|
21
21
|
mark_circular_dependencies
|
22
22
|
end
|
23
23
|
|
24
24
|
def parsers
|
25
|
-
@
|
25
|
+
@parsers ||= files.map do |file|
|
26
26
|
Rubrowser::Parser::Factory.build(file)
|
27
27
|
end
|
28
28
|
end
|
@@ -30,9 +30,7 @@ module Rubrowser
|
|
30
30
|
def mark_circular_dependencies
|
31
31
|
components = make_components
|
32
32
|
@definitions.each do |definition|
|
33
|
-
if components.include?(definition.namespace.first.to_s)
|
34
|
-
definition.set_circular
|
35
|
-
end
|
33
|
+
definition.set_circular if components.include?(definition.namespace.first.to_s)
|
36
34
|
end
|
37
35
|
|
38
36
|
@relations.each do |relation|
|
data/lib/rubrowser/monitor.rb
CHANGED
@@ -19,6 +19,7 @@ module Rubrowser
|
|
19
19
|
|
20
20
|
def parse
|
21
21
|
return unless valid_file?(file)
|
22
|
+
|
22
23
|
constants = constants_from_file
|
23
24
|
|
24
25
|
@definitions = constants[:definitions]
|
@@ -106,18 +107,19 @@ module Rubrowser
|
|
106
107
|
.reduce { |a, e| merge_constants(a, e) }
|
107
108
|
end
|
108
109
|
|
109
|
-
def merge_constants(
|
110
|
-
|
111
|
-
|
110
|
+
def merge_constants(const1, const2)
|
111
|
+
const1 ||= {}
|
112
|
+
const2 ||= {}
|
112
113
|
{
|
113
|
-
definitions:
|
114
|
-
relations:
|
114
|
+
definitions: const1[:definitions].to_a + const2[:definitions].to_a,
|
115
|
+
relations: const1[:relations].to_a + const2[:relations].to_a
|
115
116
|
}
|
116
117
|
end
|
117
118
|
|
118
119
|
def ast_consts_to_array(node, parents = [])
|
119
120
|
return parents unless valid_node?(node) &&
|
120
121
|
%I[const cbase].include?(node.type)
|
122
|
+
|
121
123
|
ast_consts_to_array(node.children.first, parents) + [node.children.last]
|
122
124
|
end
|
123
125
|
|
@@ -4,7 +4,7 @@ module Rubrowser
|
|
4
4
|
module Parser
|
5
5
|
module Relation
|
6
6
|
class Base
|
7
|
-
attr_reader :
|
7
|
+
attr_reader :file, :line
|
8
8
|
|
9
9
|
def initialize(namespace, caller_namespace, file: nil, line: nil)
|
10
10
|
@namespace = namespace
|
@@ -32,7 +32,7 @@ module Rubrowser
|
|
32
32
|
|
33
33
|
def resolve(definitions)
|
34
34
|
possibilities.find do |possibility|
|
35
|
-
definitions.
|
35
|
+
!definitions.bsearch { |definition| definition <=> possibility }.nil?
|
36
36
|
end || possibilities.last
|
37
37
|
end
|
38
38
|
|
data/lib/rubrowser/renderer.rb
CHANGED
@@ -12,7 +12,11 @@ module Rubrowser
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def call
|
15
|
-
|
15
|
+
if @json
|
16
|
+
output.write(data)
|
17
|
+
else
|
18
|
+
output.write(erb(:index))
|
19
|
+
end
|
16
20
|
end
|
17
21
|
|
18
22
|
private
|
@@ -27,6 +31,7 @@ module Rubrowser
|
|
27
31
|
@server = options[:server]
|
28
32
|
@files = options[:files]
|
29
33
|
@toolbox = options[:toolbox]
|
34
|
+
@json = !!options[:json]
|
30
35
|
end
|
31
36
|
|
32
37
|
def output_file(path)
|
@@ -35,6 +40,7 @@ module Rubrowser
|
|
35
40
|
|
36
41
|
def layout
|
37
42
|
return 'null' unless @layout
|
43
|
+
|
38
44
|
File.read(@layout)
|
39
45
|
end
|
40
46
|
|
data/lib/rubrowser/server.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'lite_cable'
|
2
2
|
require 'lite_cable/server'
|
3
|
-
require 'puma
|
4
|
-
require 'puma/launcher'
|
3
|
+
require 'puma'
|
5
4
|
require 'rubrowser/connection'
|
6
5
|
|
7
6
|
module Rubrowser
|
@@ -32,10 +31,10 @@ module Rubrowser
|
|
32
31
|
end
|
33
32
|
|
34
33
|
def rack_app
|
35
|
-
@
|
34
|
+
@rack_app ||= Rack::Builder.new do
|
36
35
|
map '/' do
|
37
|
-
use LiteCable::Server::Middleware, connection_class:
|
38
|
-
run
|
36
|
+
use LiteCable::Server::Middleware, connection_class: Connection
|
37
|
+
run(proc { |_| [200, { 'Content-Type' => 'text/plain' }, ['OK']] })
|
39
38
|
end
|
40
39
|
end
|
41
40
|
end
|
data/lib/rubrowser/trace.rb
CHANGED
data/lib/rubrowser/version.rb
CHANGED
data/readme.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Rubrowser
|
1
|
+
# Rubrowser (Ruby Browser)
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/rubrowser.svg)](https://badge.fury.io/rb/rubrowser)
|
4
4
|
[![Build Status](https://travis-ci.org/emad-elsaid/rubrowser.svg?branch=master)](https://travis-ci.org/emad-elsaid/rubrowser)
|
@@ -17,7 +17,7 @@ documentation
|
|
17
17
|
|
18
18
|
this project is so small that the visualization looks like so
|
19
19
|
|
20
|
-
![rubrowser visualization](https://i.imgur.com/
|
20
|
+
![rubrowser visualization](https://i.imgur.com/zKjc7G5.png)
|
21
21
|
|
22
22
|
the idea is that the project opens every `.rb` file and parse it with `parser`
|
23
23
|
gem then list all modules and classes definitions, and all constants that are
|
@@ -51,11 +51,12 @@ gem install rubrowser
|
|
51
51
|
|
52
52
|
|
53
53
|
```
|
54
|
-
Usage:
|
54
|
+
Usage: rubrowser [options] [file] ...
|
55
55
|
-o, --output=FILE output file page, if not specified output will be written to stdout
|
56
56
|
-l, --layout=FILE layout file to apply on the resulting graph
|
57
57
|
-s, --server=SERVER:PORT rubrowser server for execution monitoring
|
58
58
|
-T, --no-toolbox Don't display toolbox on the page
|
59
|
+
-j, --json Do export data as JSON instead of HTML
|
59
60
|
-v, --version Print Rubrowser version
|
60
61
|
-h, --help Prints this help
|
61
62
|
```
|
@@ -119,6 +120,13 @@ rubrowser -l .rubrowser
|
|
119
120
|
So that in the future probably rubrowser can pick the file automatically, if you
|
120
121
|
follow that naming, your project will be ready in that case.
|
121
122
|
|
123
|
+
## Export data for use in external tools
|
124
|
+
|
125
|
+
```
|
126
|
+
rubrowser -j|jq '.'
|
127
|
+
```
|
128
|
+
|
129
|
+
|
122
130
|
## Features
|
123
131
|
|
124
132
|
* trace your execution in realtime on the graph
|
data/rubrowser.gemspec
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
lib = File.expand_path('
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
3
|
require 'rubrowser/version'
|
4
4
|
|
@@ -6,27 +6,28 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = 'rubrowser'
|
7
7
|
s.version = Rubrowser::VERSION
|
8
8
|
s.authors = ['Emad Elsaid']
|
9
|
-
s.email = ['
|
10
|
-
s.homepage = 'https://github.com/
|
9
|
+
s.email = ['emad.elsaid.hamed@gmail.com']
|
10
|
+
s.homepage = 'https://github.com/emad-elsaid/rubrowser'
|
11
11
|
s.summary = 'A ruby interactive dependency graph visualizer'
|
12
12
|
s.description = 'A ruby interactive dependency graph visualizer'
|
13
13
|
s.license = 'MIT'
|
14
|
+
s.required_ruby_version = '>=2.5'
|
14
15
|
|
15
|
-
s.files
|
16
|
+
s.files = `git ls-files -z`.split("\x0").reject do |f|
|
16
17
|
f.match(%r{^(test|spec|features)/})
|
17
18
|
end
|
18
19
|
s.bindir = 'bin'
|
19
20
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
21
|
s.require_paths = ['lib']
|
21
22
|
|
22
|
-
s.add_runtime_dependency 'parser', '~> 2.3', '>= 2.3.0'
|
23
|
-
s.add_runtime_dependency 'puma'
|
24
23
|
s.add_runtime_dependency 'litecable'
|
24
|
+
s.add_runtime_dependency 'parser'
|
25
|
+
s.add_runtime_dependency 'puma'
|
25
26
|
s.add_runtime_dependency 'websocket'
|
26
27
|
|
27
|
-
s.add_development_dependency 'bundler'
|
28
|
-
s.add_development_dependency 'rake', '~> 10.0'
|
28
|
+
s.add_development_dependency 'bundler'
|
29
29
|
s.add_development_dependency 'byebug'
|
30
|
-
s.add_development_dependency '
|
30
|
+
s.add_development_dependency 'rake'
|
31
31
|
s.add_development_dependency 'rspec'
|
32
|
+
s.add_development_dependency 'rubocop'
|
32
33
|
end
|
metadata
CHANGED
@@ -1,37 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubrowser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: '2.11'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emad Elsaid
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: litecable
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.3'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
19
|
+
version: '0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.3'
|
30
24
|
- - ">="
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: '0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
28
|
+
name: parser
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
31
|
- - ">="
|
@@ -45,7 +39,7 @@ dependencies:
|
|
45
39
|
- !ruby/object:Gem::Version
|
46
40
|
version: '0'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
42
|
+
name: puma
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - ">="
|
@@ -76,32 +70,32 @@ dependencies:
|
|
76
70
|
name: bundler
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
|
-
- - "
|
73
|
+
- - ">="
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
75
|
+
version: '0'
|
82
76
|
type: :development
|
83
77
|
prerelease: false
|
84
78
|
version_requirements: !ruby/object:Gem::Requirement
|
85
79
|
requirements:
|
86
|
-
- - "
|
80
|
+
- - ">="
|
87
81
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
82
|
+
version: '0'
|
89
83
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
84
|
+
name: byebug
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
92
86
|
requirements:
|
93
|
-
- - "
|
87
|
+
- - ">="
|
94
88
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
89
|
+
version: '0'
|
96
90
|
type: :development
|
97
91
|
prerelease: false
|
98
92
|
version_requirements: !ruby/object:Gem::Requirement
|
99
93
|
requirements:
|
100
|
-
- - "
|
94
|
+
- - ">="
|
101
95
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
96
|
+
version: '0'
|
103
97
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
98
|
+
name: rake
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
106
100
|
requirements:
|
107
101
|
- - ">="
|
@@ -115,7 +109,7 @@ dependencies:
|
|
115
109
|
- !ruby/object:Gem::Version
|
116
110
|
version: '0'
|
117
111
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
112
|
+
name: rspec
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
120
114
|
requirements:
|
121
115
|
- - ">="
|
@@ -129,7 +123,7 @@ dependencies:
|
|
129
123
|
- !ruby/object:Gem::Version
|
130
124
|
version: '0'
|
131
125
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
126
|
+
name: rubocop
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
134
128
|
requirements:
|
135
129
|
- - ">="
|
@@ -144,7 +138,7 @@ dependencies:
|
|
144
138
|
version: '0'
|
145
139
|
description: A ruby interactive dependency graph visualizer
|
146
140
|
email:
|
147
|
-
-
|
141
|
+
- emad.elsaid.hamed@gmail.com
|
148
142
|
executables:
|
149
143
|
- rubrowser
|
150
144
|
extensions: []
|
@@ -189,11 +183,11 @@ files:
|
|
189
183
|
- rubrowser.gemspec
|
190
184
|
- views/index.erb
|
191
185
|
- views/toolbox.erb
|
192
|
-
homepage: https://github.com/
|
186
|
+
homepage: https://github.com/emad-elsaid/rubrowser
|
193
187
|
licenses:
|
194
188
|
- MIT
|
195
189
|
metadata: {}
|
196
|
-
post_install_message:
|
190
|
+
post_install_message:
|
197
191
|
rdoc_options: []
|
198
192
|
require_paths:
|
199
193
|
- lib
|
@@ -201,16 +195,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
201
195
|
requirements:
|
202
196
|
- - ">="
|
203
197
|
- !ruby/object:Gem::Version
|
204
|
-
version: '
|
198
|
+
version: '2.5'
|
205
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
200
|
requirements:
|
207
201
|
- - ">="
|
208
202
|
- !ruby/object:Gem::Version
|
209
203
|
version: '0'
|
210
204
|
requirements: []
|
211
|
-
|
212
|
-
|
213
|
-
signing_key:
|
205
|
+
rubygems_version: 3.1.2
|
206
|
+
signing_key:
|
214
207
|
specification_version: 4
|
215
208
|
summary: A ruby interactive dependency graph visualizer
|
216
209
|
test_files: []
|