imagen 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
- 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