rubrowser 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49f9c7ab359031b10dd77c4aabda40066e3eb173
4
- data.tar.gz: cd928b7bcc160b6028371058516ad9bc5f60e6b5
3
+ metadata.gz: f94392243bcd5643136643e838c1d43382c9437e
4
+ data.tar.gz: e8c90eb45c0a7ae4656f0cfc173a58c7f1be89d7
5
5
  SHA512:
6
- metadata.gz: 6313cb6eae91128b241523a2cd94059688596ed220a619c326c5b1a0939378e79acf49fc35cbeb9c5ae419ee217559cb74b80ea571355761cba15fdaa0b0cef8
7
- data.tar.gz: cb78f915673666103c2aa5e2d21bfb9d1aa3fac4e84de669e61ce0a807a612bbe8901e2b8afce31464308bb1952e04f9a0393beebc63178936d2d8277358b162
6
+ metadata.gz: b0edd936a9bf980e79e3c796546fc25912235bd5038562128ab1e600baf72c8483982a7e8353ab1337762867b94010efd4cd7592bab3417ad9c962d988d05ff3
7
+ data.tar.gz: 615030ae5b7314b49110e5dfc60141969e414ae3d6d2ae29d319af2edf5d03085801e0d7db1a63c03ddf08a4563114f2fb52377606d0a4ecdea40528dcdf02f6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubrowser (0.2.5)
4
+ rubrowser (0.2.6)
5
5
  parser (~> 2.3, >= 2.3.0)
6
6
 
7
7
  GEM
@@ -0,0 +1,13 @@
1
+ module Rubrowser
2
+ module Parser
3
+ # This class is a workaround for this behaviour
4
+ # https://github.com/whitequark/parser/commit/95401a20e8f4532e32f6361da3918ac8e4bd18c7
5
+ # the snippet that is using this class in File is copied from:
6
+ # https://github.com/eapache/starscope/pull/166/files
7
+ class Builder < ::Parser::Builders::Default
8
+ def string_value(token)
9
+ value(token)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -2,6 +2,7 @@ require 'parser/current'
2
2
  require 'rubrowser/parser/definition/class'
3
3
  require 'rubrowser/parser/definition/module'
4
4
  require 'rubrowser/parser/relation/base'
5
+ require 'rubrowser/parser/builder'
5
6
 
6
7
  module Rubrowser
7
8
  module Parser
@@ -18,8 +19,16 @@ module Rubrowser
18
19
 
19
20
  def parse
20
21
  if valid_file?(file)
21
- code = ::File.read(file)
22
- ast = ::Parser::CurrentRuby.parse(code)
22
+ contents = ::File.read(file)
23
+
24
+ buffer = ::Parser::Source::Buffer.new(file, 1)
25
+ buffer.source = contents.force_encoding(Encoding::UTF_8)
26
+
27
+ parser = ::Parser::CurrentRuby.new(Builder.new)
28
+ parser.diagnostics.ignore_warnings = true
29
+ parser.diagnostics.all_errors_are_fatal = false
30
+
31
+ ast = parser.parse(buffer)
23
32
  constants = parse_block(ast)
24
33
 
25
34
  @definitions = constants[:definitions]
@@ -1,3 +1,3 @@
1
1
  module Rubrowser
2
- VERSION = '0.2.5'.freeze
2
+ VERSION = '0.2.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubrowser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emad Elsaid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-11 00:00:00.000000000 Z
11
+ date: 2017-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -76,6 +76,7 @@ files:
76
76
  - lib/rubrowser.rb
77
77
  - lib/rubrowser/data.rb
78
78
  - lib/rubrowser/formatter/json.rb
79
+ - lib/rubrowser/parser/builder.rb
79
80
  - lib/rubrowser/parser/definition/base.rb
80
81
  - lib/rubrowser/parser/definition/class.rb
81
82
  - lib/rubrowser/parser/definition/module.rb