rubrowser 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98a6e065af01c9315496133bd1de3108a6c304c8
4
- data.tar.gz: 666779a8c170e5b9fb52a7d67435fb28124991fa
3
+ metadata.gz: 0be17d7b269962a4124e4c71d0960ee14612f32d
4
+ data.tar.gz: 8b24607f58b580bae77e5e9d39b0fe71ab6fd2cc
5
5
  SHA512:
6
- metadata.gz: 07db9f0754f43387becd50c5a1facb1872e76b1e982de3b6f06bc7a36949642982c76b64e5bc94e5c44648e5974ec78542911fcf79226e8cc40cbe99a1dd6f17
7
- data.tar.gz: 12e93089491077c8fd52feed738b2169ceced4941eb2f154489ecc7af721e06ae66c6309300894d6be8c63bf021b5c9bdba26a4663b7897d4c99e164365dafee
6
+ metadata.gz: a4eef0ad580d87429db8b111dedca2a9e7258e094adf0694f9243a3ec2e7b323c4f47cf21458f300cbaaf594dc849eb6ab1c4f9b6d2b3f4c130d8a7b8815a83a
7
+ data.tar.gz: 5849d5b884678343377d5c670f0055bdbd42865a637f983da412a39ef9e6b4d4b06b628be8690fc4f4c1de5090b80a60ebdcbf53d3d0059f4bdea9fa822e988c
data/Gemfile.lock CHANGED
@@ -1,21 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubrowser (0.1.3)
5
- haml (~> 4.0, >= 4.0.0)
6
- parallel (~> 1.9, >= 1.9.0)
4
+ rubrowser (0.1.4)
7
5
  parser (~> 2.3, >= 2.3.0)
8
6
 
9
7
  GEM
10
8
  remote: https://rubygems.org/
11
9
  specs:
12
10
  ast (2.3.0)
13
- haml (4.0.7)
14
- tilt
15
- parallel (1.9.0)
16
11
  parser (2.3.1.2)
17
12
  ast (~> 2.2)
18
- tilt (2.0.5)
19
13
 
20
14
  PLATFORMS
21
15
  ruby
@@ -1,6 +1,3 @@
1
- require 'parser/factory'
2
- require 'parallel'
3
-
4
1
  module Rubrowser
5
2
  module Parser
6
3
  class Directory
@@ -8,37 +5,25 @@ module Rubrowser
8
5
 
9
6
  def initialize(directory)
10
7
  @directory = directory
11
- @parsers = []
12
- read
8
+ files = Dir.glob(::File.join(directory, '**', '*.rb'))
9
+ @parsers = files.map { |f| File.new(f) }
13
10
  end
14
11
 
15
12
  def parse
16
- self.parsers = Parallel.map(parsers){ |parser| parser.parse }
17
- self
13
+ parsers.each(&:parse)
18
14
  end
19
15
 
20
16
  def definitions
21
- parsers.map(&:definitions).map(&:to_a).reduce(:+) || []
17
+ parsers.map(&:definitions).map(&:to_a).reduce(:+)
22
18
  end
23
19
 
24
20
  def occurences
25
- parsers.map(&:occurences).map(&:to_a).reduce(:+) || []
26
- end
27
-
28
- def count
29
- parsers.map(&:count).reduce(:+)
21
+ parsers.map(&:occurences).map(&:to_a).reduce(:+)
30
22
  end
31
23
 
32
24
  private
33
25
 
34
- attr_accessor :parsers
35
-
36
- def read
37
- files = Dir.glob(::File.join(directory, '**', '*.rb'))
38
- self.parsers = Parallel.map(files) do |file|
39
- Factory.build(file)
40
- end.compact
41
- end
26
+ attr_reader :parsers
42
27
  end
43
28
  end
44
29
  end
data/lib/parser/file.rb CHANGED
@@ -9,7 +9,7 @@ module Rubrowser
9
9
 
10
10
  def initialize(file)
11
11
  @file = file
12
- @definitions = Set.new
12
+ @definitions = []
13
13
  @occurences = []
14
14
  end
15
15
 
@@ -19,25 +19,20 @@ module Rubrowser
19
19
  code = f.read
20
20
  ast = ::Parser::CurrentRuby.parse(code)
21
21
  constants = parse_block(ast)
22
- self.definitions = constants[:definitions].uniq
23
- self.occurences = constants[:occurences].uniq
22
+ @definitions = constants[:definitions].uniq
23
+ @occurences = constants[:occurences].uniq
24
24
  end
25
25
  end
26
- self
27
26
  end
28
27
 
29
28
  def file_valid?(file)
30
- !::File.symlink?(file) && ::File.file?(file) && ::File.size(file) <= FILE_SIZE_LIMIT
31
- end
32
-
33
- def count
34
- 1
29
+ !::File.symlink?(file) &&
30
+ ::File.file?(file) &&
31
+ ::File.size(file) <= FILE_SIZE_LIMIT
35
32
  end
36
33
 
37
34
  private
38
35
 
39
- attr_writer :definitions, :occurences
40
-
41
36
  def parse_block(node, parents = [])
42
37
  return { definitions: [], occurences: [] } unless node.is_a?(::Parser::AST::Node)
43
38
 
@@ -85,10 +80,10 @@ module Rubrowser
85
80
  { definitions: [], occurences: constants }
86
81
  end
87
82
 
88
- def merge_constants(constants1, constants2)
83
+ def merge_constants(c1, c2)
89
84
  {
90
- definitions: constants1[:definitions] + constants2[:definitions],
91
- occurences: constants1[:occurences] + constants2[:occurences]
85
+ definitions: c1[:definitions] + c2[:definitions],
86
+ occurences: c1[:occurences] + c2[:occurences]
92
87
  }
93
88
  end
94
89
 
data/lib/rubrowser.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rubrowser
2
- VERSION = '0.1.3'.freeze
2
+ VERSION = '0.1.4'.freeze
3
3
  end
data/lib/server.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  require 'webrick'
2
- require 'haml'
3
2
  require 'data'
4
3
  require 'json'
4
+ require 'erb'
5
5
 
6
6
  module Rubrowser
7
7
  class Server < WEBrick::HTTPServer
8
+ include ERB::Util
9
+
8
10
  def self.start(paths)
9
11
  new(paths).start
10
12
  end
@@ -28,12 +30,7 @@ module Rubrowser
28
30
 
29
31
  def root(path)
30
32
  return file(path) if file?(path)
31
-
32
- haml :index,
33
- locals: {
34
- constants: data.constants,
35
- occurences: data.occurences
36
- }
33
+ erb :index
37
34
  end
38
35
 
39
36
  def file?(path)
@@ -45,11 +42,10 @@ module Rubrowser
45
42
  File.read(resolve_file_path("/public#{path}"))
46
43
  end
47
44
 
48
- def haml(template, options = {})
49
- path = resolve_file_path("/views/#{template}.haml")
45
+ def erb(template)
46
+ path = resolve_file_path("/views/#{template}.erb")
50
47
  file = File.open(path).read
51
- locals = options.delete(:locals) || {}
52
- Haml::Engine.new(file, options).render(self, locals)
48
+ ERB.new(file).result binding
53
49
  end
54
50
 
55
51
  def resolve_file_path(path)
data/rubrowser.gemspec CHANGED
@@ -16,6 +16,4 @@ Gem::Specification.new do |s|
16
16
  s.executables << 'rubrowser'
17
17
 
18
18
  s.add_runtime_dependency 'parser', '~> 2.3', '>= 2.3.0'
19
- s.add_runtime_dependency 'parallel', '~> 1.9', '>= 1.9.0'
20
- s.add_runtime_dependency 'haml', '~> 4.0', '>= 4.0.0'
21
19
  end
data/views/index.erb ADDED
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
5
+ <title>Rubrowser</title>
6
+ <link href='/css/application.css' media='all' rel='stylesheet'>
7
+ <script src='/javascript/d3.js' type='text/javascript'></script>
8
+ <script src='/javascript/jquery.js' type='text/javascript'></script>
9
+ <script src='/javascript/application.js' type='text/javascript'></script>
10
+ </head>
11
+ <body>
12
+ <div class='dependency_graph'>
13
+ <svg data-constants="<%=h data.constants.to_json%>" data-occurences="<%=h data.occurences.to_json%>"></svg>
14
+ </div>
15
+ </body>
16
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubrowser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emad Elsaid
@@ -30,46 +30,6 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.3.0
33
- - !ruby/object:Gem::Dependency
34
- name: parallel
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '1.9'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 1.9.0
43
- type: :runtime
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '1.9'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 1.9.0
53
- - !ruby/object:Gem::Dependency
54
- name: haml
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - "~>"
58
- - !ruby/object:Gem::Version
59
- version: '4.0'
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 4.0.0
63
- type: :runtime
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '4.0'
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- version: 4.0.0
73
33
  description: A ruby interactive dependency graph visualizer
74
34
  email:
75
35
  - blazeeboy@gmail.com
@@ -96,7 +56,7 @@ files:
96
56
  - public/javascript/jquery.js
97
57
  - readme.md
98
58
  - rubrowser.gemspec
99
- - views/index.haml
59
+ - views/index.erb
100
60
  homepage: https://github.com/blazeeboy/rubrowser
101
61
  licenses:
102
62
  - MIT
data/views/index.haml DELETED
@@ -1,12 +0,0 @@
1
- !!!
2
- %html
3
- %head
4
- %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
5
- %title Rubrowser
6
- %link{ rel: "stylesheet", media: "all", href: "/css/application.css"}
7
- %script{:src => "/javascript/d3.js", :type => "text/javascript"}
8
- %script{:src => "/javascript/jquery.js", :type => "text/javascript"}
9
- %script{:src => "/javascript/application.js", :type => "text/javascript"}
10
- %body
11
- .dependency_graph
12
- %svg{ data: { constants: constants.to_json, occurences: occurences.to_json } }