imagen 0.1.3 → 0.1.4

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
- SHA256:
3
- metadata.gz: f5d044f6613294c88bd6900a832ccac34b7f938e957195d29c27c994ff596054
4
- data.tar.gz: f3fdc14c324532442172effab3eceb3061bbed4b863c4e967ef74769203b3e42
2
+ SHA1:
3
+ metadata.gz: dd2abfa3ac968c14a9bbfabbd1dfbbb53512e874
4
+ data.tar.gz: d1f28df309ae470eb2ce03e48d66b1c7f70966b8
5
5
  SHA512:
6
- metadata.gz: d56e2978602631ea2f46b5b661a7f27bca0a286611d636aa694da3fefdc204f705c601972107b1fcafcfd64dfee289b558eb6fb411f946fdb01b7c294332048d
7
- data.tar.gz: b83cdf1e8befa3ada88c989dd6692c3185fc26e160df176beb75acf2e649a7812084eacacce066ac5472c04aab2eb01800d1d7dcaff70d93a9a7c92d1eb1083e
6
+ metadata.gz: fa11acb0c204fb8377a9e418a184755092f7e81065e84a42dbfeea9963b1df946aa55796f4913a959bb9d8f3c2fbab51b1d672696972b75aa459df61cd4b04ae
7
+ data.tar.gz: 7f078ca350a97cfe3b52505749c401554df2d5a1ed56893eb6ee5192a6d48f7ef25d33534eaa45c19521e6467fde1beb80ba8ee08e1042e1569eca3cad1b96b8
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Imagen
4
+ module AST
5
+ # An AST Builder for ruby parser.
6
+ class Builder < ::Parser::Builders::Default
7
+ # This is a work around for parsing ruby code that with invlalid UTF-8
8
+ # https://github.com/whitequark/parser/issues/283
9
+ def string_value(token)
10
+ value(token)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'parser/current'
4
+ require 'imagen/ast/builder'
5
+
6
+ module Imagen
7
+ module AST
8
+ module Parser
9
+ def self.parse_file(filename)
10
+ parse(File.read(filename), filename)
11
+ end
12
+
13
+ def self.parse(input, file = '(string)')
14
+ buffer = ::Parser::Source::Buffer.new(file)
15
+ buffer.source = input
16
+ default_parser.parse(buffer)
17
+ end
18
+
19
+ def self.default_parser
20
+ ::Parser::CurrentRuby.new(AST::Builder.new).tap do |parser|
21
+ diagnostics = parser.diagnostics
22
+ diagnostics.all_errors_are_fatal = true
23
+ diagnostics.ignore_warnings = true
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/imagen/node.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'parser/current'
4
+ require 'imagen/ast/parser'
5
+ require 'imagen/ast/builder'
6
+
3
7
  module Imagen
4
8
  module Node
5
9
  # Abstract base class
@@ -64,7 +68,7 @@ module Imagen
64
68
  attr_reader :dir
65
69
 
66
70
  def build_from_file(path)
67
- Imagen::Visitor.traverse(Parser::CurrentRuby.parse_file(path), self)
71
+ Imagen::Visitor.traverse(Imagen::AST::Parser.parse_file(path), self)
68
72
  rescue Parser::SyntaxError => err
69
73
  warn "#{path}: #{err} #{err.message}"
70
74
  self
@@ -74,7 +78,7 @@ module Imagen
74
78
  @dir = dir
75
79
  list_files.each do |path|
76
80
  begin
77
- Imagen::Visitor.traverse(Parser::CurrentRuby.parse_file(path), self)
81
+ Imagen::Visitor.traverse(Imagen::AST::Parser.parse_file(path), self)
78
82
  rescue Parser::SyntaxError => err
79
83
  warn "#{path}: #{err} #{err.message}"
80
84
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Imagen
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imagen
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
  - Jan Grodowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-10 00:00:00.000000000 Z
11
+ date: 2018-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -149,6 +149,8 @@ files:
149
149
  - imagen_rb.gemspec
150
150
  - lib/.gitkeep
151
151
  - lib/imagen.rb
152
+ - lib/imagen/ast/builder.rb
153
+ - lib/imagen/ast/parser.rb
152
154
  - lib/imagen/clone.rb
153
155
  - lib/imagen/node.rb
154
156
  - lib/imagen/remote_builder.rb
@@ -175,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
177
  version: '0'
176
178
  requirements: []
177
179
  rubyforge_project:
178
- rubygems_version: 2.7.6
180
+ rubygems_version: 2.6.14.1
179
181
  signing_key:
180
182
  specification_version: 4
181
183
  summary: Codebase as structure of locatable classes and methods based on the Ruby