imagen 0.1.0
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 +7 -0
- data/.dockerignore +1 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.rubocop.yml +14 -0
- data/.travis.yml +8 -0
- data/Dockerfile +24 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +70 -0
- data/LICENSE.txt +21 -0
- data/README.md +7 -0
- data/Rakefile +14 -0
- data/bin/console +8 -0
- data/bin/setup +8 -0
- data/build.sh +1 -0
- data/imagen_rb.gemspec +36 -0
- data/lib/.gitkeep +0 -0
- data/lib/imagen.rb +21 -0
- data/lib/imagen/clone.rb +33 -0
- data/lib/imagen/node.rb +131 -0
- data/lib/imagen/remote_builder.rb +28 -0
- data/lib/imagen/version.rb +5 -0
- data/lib/imagen/visitor.rb +34 -0
- data/run.sh +7 -0
- metadata +180 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 2ca7133fb04e7eaee106031a74a765bc1950fa166008f1d698fb9324d7d7b04d
|
|
4
|
+
data.tar.gz: 354ea46d073b496a1e9240c843bfa6193ee59e6460992638167f4c42f8dedc7f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 5921d7aa4e7b771ba0d48466ff9351d9e71b7a47395d1b2455ecd7475bb6af96ae09fb8abd9e070b6c401b533b007e17e8869e04a8aedba4d31943f799225774
|
|
7
|
+
data.tar.gz: 1b7d7d85d6f239ad858dca1f655da5b52127f9db2e99b8f51812a9001285c70067d18a62deb6b861dd04630766c47aaf451a934bc9ed04711f7c798c0b7422ec
|
data/.dockerignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.git
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
data/Dockerfile
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
FROM ruby:2.4.1
|
|
2
|
+
|
|
3
|
+
# install Git 2.3
|
|
4
|
+
RUN echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu precise main" \
|
|
5
|
+
>> /etc/apt/sources.list
|
|
6
|
+
RUN echo "deb-src http://ppa.launchpad.net/git-core/ppa/ubuntu precise main" \
|
|
7
|
+
>> /etc/apt/sources.list
|
|
8
|
+
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A1715D88E1DF1F24
|
|
9
|
+
RUN apt-get update && apt-get upgrade -y git
|
|
10
|
+
|
|
11
|
+
RUN mkdir /imagen
|
|
12
|
+
|
|
13
|
+
COPY Gemfile* /tmp/
|
|
14
|
+
WORKDIR /tmp
|
|
15
|
+
|
|
16
|
+
# use a local bundle path for gem inspections
|
|
17
|
+
ENV BUNDLE_PATH /imagen/.bundle
|
|
18
|
+
|
|
19
|
+
# add /bin to PATH
|
|
20
|
+
ENV BUNDLE_BIN=/imagen/.bundle/bin
|
|
21
|
+
ENV PATH $BUNDLE_BIN:$PATH
|
|
22
|
+
|
|
23
|
+
WORKDIR /imagen
|
|
24
|
+
ADD . /imagen
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
imagen (0.1.0)
|
|
5
|
+
parser
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: https://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
ast (2.4.0)
|
|
11
|
+
coderay (1.1.1)
|
|
12
|
+
diff-lcs (1.3)
|
|
13
|
+
docile (1.3.0)
|
|
14
|
+
json (2.1.0)
|
|
15
|
+
method_source (0.8.2)
|
|
16
|
+
parallel (1.12.1)
|
|
17
|
+
parser (2.5.1.0)
|
|
18
|
+
ast (~> 2.4.0)
|
|
19
|
+
powerpack (0.1.1)
|
|
20
|
+
pry (0.10.4)
|
|
21
|
+
coderay (~> 1.1.0)
|
|
22
|
+
method_source (~> 0.8.1)
|
|
23
|
+
slop (~> 3.4)
|
|
24
|
+
rainbow (3.0.0)
|
|
25
|
+
rake (10.5.0)
|
|
26
|
+
rspec (3.6.0)
|
|
27
|
+
rspec-core (~> 3.6.0)
|
|
28
|
+
rspec-expectations (~> 3.6.0)
|
|
29
|
+
rspec-mocks (~> 3.6.0)
|
|
30
|
+
rspec-core (3.6.0)
|
|
31
|
+
rspec-support (~> 3.6.0)
|
|
32
|
+
rspec-expectations (3.6.0)
|
|
33
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
34
|
+
rspec-support (~> 3.6.0)
|
|
35
|
+
rspec-mocks (3.6.0)
|
|
36
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
37
|
+
rspec-support (~> 3.6.0)
|
|
38
|
+
rspec-support (3.6.0)
|
|
39
|
+
rubocop (0.55.0)
|
|
40
|
+
parallel (~> 1.10)
|
|
41
|
+
parser (>= 2.5)
|
|
42
|
+
powerpack (~> 0.1)
|
|
43
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
44
|
+
ruby-progressbar (~> 1.7)
|
|
45
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
46
|
+
ruby-progressbar (1.9.0)
|
|
47
|
+
simplecov (0.16.1)
|
|
48
|
+
docile (~> 1.1)
|
|
49
|
+
json (>= 1.8, < 3)
|
|
50
|
+
simplecov-html (~> 0.10.0)
|
|
51
|
+
simplecov-html (0.10.2)
|
|
52
|
+
simplecov-lcov (0.7.0)
|
|
53
|
+
slop (3.6.0)
|
|
54
|
+
unicode-display_width (1.3.2)
|
|
55
|
+
|
|
56
|
+
PLATFORMS
|
|
57
|
+
ruby
|
|
58
|
+
|
|
59
|
+
DEPENDENCIES
|
|
60
|
+
bundler (~> 1.16)
|
|
61
|
+
imagen!
|
|
62
|
+
pry
|
|
63
|
+
rake (~> 10.0)
|
|
64
|
+
rspec (~> 3.0)
|
|
65
|
+
rubocop (~> 0.55.0)
|
|
66
|
+
simplecov
|
|
67
|
+
simplecov-lcov
|
|
68
|
+
|
|
69
|
+
BUNDLED WITH
|
|
70
|
+
1.16.1
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Jan Grodowski
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# imagen-rb
|
|
2
|
+
|
|
3
|
+
[](https://travis-ci.org/grodowski/imagen_rb)
|
|
4
|
+
[](https://codebeat.co/projects/github-com-grodowski-imagen-rb-master)
|
|
5
|
+
|
|
6
|
+
*Representación mental que se tiene de algo.*
|
|
7
|
+
*Mental representation of something.*
|
data/Rakefile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH << 'lib'
|
|
4
|
+
|
|
5
|
+
require 'rubocop/rake_task'
|
|
6
|
+
require 'rspec/core/rake_task'
|
|
7
|
+
|
|
8
|
+
desc 'Run RuboCop'
|
|
9
|
+
RuboCop::RakeTask.new(:rubocop)
|
|
10
|
+
|
|
11
|
+
desc 'Run Tests'
|
|
12
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
13
|
+
|
|
14
|
+
task default: %i[rubocop spec]
|
data/bin/console
ADDED
data/bin/setup
ADDED
data/build.sh
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
docker build -t mrgrodo/imagen-rb .
|
data/imagen_rb.gemspec
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable all
|
|
4
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
6
|
+
|
|
7
|
+
require 'imagen/version'
|
|
8
|
+
|
|
9
|
+
Gem::Specification.new do |spec|
|
|
10
|
+
spec.name = 'imagen'
|
|
11
|
+
spec.version = Imagen::VERSION
|
|
12
|
+
spec.authors = ['Jan Grodowski']
|
|
13
|
+
spec.email = ['jgrodowski@gmail.com']
|
|
14
|
+
|
|
15
|
+
spec.summary = %q{Codebase as structure of locatable classes and methods based on the Ruby AST}
|
|
16
|
+
spec.homepage = "https://github.com/grodowski/imagen_rb"
|
|
17
|
+
spec.license = 'MIT'
|
|
18
|
+
|
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
20
|
+
f.match(%r{^(test|spec|features)/})
|
|
21
|
+
end
|
|
22
|
+
spec.bindir = 'exe'
|
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
24
|
+
spec.require_paths = ['lib']
|
|
25
|
+
|
|
26
|
+
spec.add_dependency 'parser'
|
|
27
|
+
|
|
28
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
|
29
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
|
30
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
31
|
+
spec.add_development_dependency 'rubocop', '~> 0.55.0'
|
|
32
|
+
spec.add_development_dependency 'pry'
|
|
33
|
+
spec.add_development_dependency 'simplecov'
|
|
34
|
+
spec.add_development_dependency 'simplecov-lcov'
|
|
35
|
+
end
|
|
36
|
+
# rubocop:enable all
|
data/lib/.gitkeep
ADDED
|
File without changes
|
data/lib/imagen.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH << 'lib'
|
|
4
|
+
|
|
5
|
+
require 'imagen/node'
|
|
6
|
+
require 'imagen/visitor'
|
|
7
|
+
require 'imagen/clone'
|
|
8
|
+
require 'imagen/remote_builder'
|
|
9
|
+
|
|
10
|
+
# Base module
|
|
11
|
+
module Imagen
|
|
12
|
+
EXCLUDE_RE = /_(spec|test).rb$/
|
|
13
|
+
|
|
14
|
+
def self.from_local(dir)
|
|
15
|
+
Node::Root.new.build_from_dir(dir)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.from_remote(repo_url)
|
|
19
|
+
RemoteBuilder.new(repo_url).build
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/imagen/clone.rb
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'open3'
|
|
4
|
+
|
|
5
|
+
module Imagen
|
|
6
|
+
# Generic clone error
|
|
7
|
+
class GitError < StandardError; end
|
|
8
|
+
|
|
9
|
+
# Responsible for cloning a Git repository into a given tempdir
|
|
10
|
+
class Clone
|
|
11
|
+
def self.perform(repo_url, dir)
|
|
12
|
+
new(repo_url, dir).perform
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
attr_reader :repo_url, :dir
|
|
16
|
+
|
|
17
|
+
def initialize(repo_url, dirname)
|
|
18
|
+
unless repo_url.match?(/^https:\/\/}/)
|
|
19
|
+
raise ArgumentError, 'repo_url must start with https://'
|
|
20
|
+
end
|
|
21
|
+
@repo_url = repo_url
|
|
22
|
+
@dir = dirname
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def perform
|
|
26
|
+
cmd = "GIT_TERMINAL_PROMPT=0 git clone --depth 1 #{repo_url} #{dir}"
|
|
27
|
+
Open3.popen3(cmd) do |_s_in, _s_out, s_err, wait_thr|
|
|
28
|
+
err_msg = s_err.read
|
|
29
|
+
raise GitError, err_msg unless wait_thr.value.exitstatus.zero?
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/imagen/node.rb
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Imagen
|
|
4
|
+
module Node
|
|
5
|
+
# Abstract base class
|
|
6
|
+
class Base
|
|
7
|
+
attr_reader :ast_node,
|
|
8
|
+
:children,
|
|
9
|
+
:name
|
|
10
|
+
|
|
11
|
+
def initialize
|
|
12
|
+
@children = []
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def build_from_ast(ast_node)
|
|
16
|
+
tap { @ast_node = ast_node }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def file_path
|
|
20
|
+
ast_node.location.name.source_buffer.name
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def first_line
|
|
24
|
+
ast_node.location.first_line
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def line_numbers
|
|
28
|
+
(first_line..last_line).to_a
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def last_line
|
|
32
|
+
ast_node.location.last_line
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def source
|
|
36
|
+
source_lines.join("\n")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def source_lines_with_numbers
|
|
40
|
+
(first_line..last_line).zip(source_lines)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def source_lines
|
|
44
|
+
ast_node.location.expression.source_buffer.source_lines[
|
|
45
|
+
first_line - 1,
|
|
46
|
+
last_line
|
|
47
|
+
]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def find_all(matcher, ret = [])
|
|
51
|
+
ret.tap do
|
|
52
|
+
ret << self if matcher.call(self)
|
|
53
|
+
children.each { |child| child.find_all(matcher, ret) }
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Root node for a given directory
|
|
59
|
+
class Root < Base
|
|
60
|
+
attr_reader :dir
|
|
61
|
+
|
|
62
|
+
def build_from_dir(dir)
|
|
63
|
+
@dir = dir
|
|
64
|
+
list_files.each do |path|
|
|
65
|
+
begin
|
|
66
|
+
Imagen::Visitor.traverse(Parser::CurrentRuby.parse_file(path), self)
|
|
67
|
+
rescue Parser::SyntaxError => err
|
|
68
|
+
warn "#{path}: #{err} #{err.message}"
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
self
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# TODO: fix wrong inheritance
|
|
75
|
+
def file_path
|
|
76
|
+
dir
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def first_line
|
|
80
|
+
nil
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def last_line
|
|
84
|
+
nil
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def source
|
|
88
|
+
nil
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
private
|
|
92
|
+
|
|
93
|
+
def list_files
|
|
94
|
+
return [dir] if File.file?(dir)
|
|
95
|
+
Dir.glob("#{dir}/**/*.rb").reject { |path| path =~ Imagen::EXCLUDE_RE }
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Represents a Ruby module
|
|
100
|
+
class Module < Base
|
|
101
|
+
def build_from_ast(ast_node)
|
|
102
|
+
super
|
|
103
|
+
tap { @name = ast_node.children[0].children[1].to_s }
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Represents a Ruby class
|
|
108
|
+
class Class < Base
|
|
109
|
+
def build_from_ast(ast_node)
|
|
110
|
+
super
|
|
111
|
+
tap { @name = ast_node.children[0].children[1].to_s }
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Represents a Ruby class method
|
|
116
|
+
class CMethod < Base
|
|
117
|
+
def build_from_ast(ast_node)
|
|
118
|
+
super
|
|
119
|
+
tap { @name = ast_node.children[1].to_s }
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Represents a Ruby instance method
|
|
124
|
+
class IMethod < Base
|
|
125
|
+
def build_from_ast(ast_node)
|
|
126
|
+
super
|
|
127
|
+
tap { @name = ast_node.children[0].to_s }
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'parser/current'
|
|
4
|
+
require 'tmpdir'
|
|
5
|
+
|
|
6
|
+
module Imagen
|
|
7
|
+
# RemoteBuilder is responsible for wrapping all operations to create code
|
|
8
|
+
# structure for a remote git repository.
|
|
9
|
+
class RemoteBuilder
|
|
10
|
+
attr_reader :repo_url, :dir
|
|
11
|
+
|
|
12
|
+
def initialize(repo_url)
|
|
13
|
+
@repo_url = repo_url
|
|
14
|
+
@dir = Dir.mktmpdir
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def build
|
|
18
|
+
Clone.perform(repo_url, dir)
|
|
19
|
+
Imagen::Node::Root.new.build_from_dir(dir).tap { teardown }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def teardown
|
|
25
|
+
FileUtils.remove_entry dir
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Imagen
|
|
4
|
+
# AST Traversal that calls respective builder methods from Imagen::Node
|
|
5
|
+
class Visitor
|
|
6
|
+
TYPES = {
|
|
7
|
+
class: Imagen::Node::Class,
|
|
8
|
+
module: Imagen::Node::Module,
|
|
9
|
+
defs: Imagen::Node::CMethod,
|
|
10
|
+
def: Imagen::Node::IMethod
|
|
11
|
+
}.freeze
|
|
12
|
+
|
|
13
|
+
attr_reader :root, :current_root, :file_path
|
|
14
|
+
|
|
15
|
+
def self.traverse(ast, root)
|
|
16
|
+
new.traverse(ast, root)
|
|
17
|
+
root
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def traverse(ast_node, parent)
|
|
21
|
+
return unless ast_node.is_a?(Parser::AST::Node)
|
|
22
|
+
node = visit(ast_node, parent)
|
|
23
|
+
ast_node.children.each { |child| traverse(child, node || parent) }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# This method reeks of :reek:UtilityFunction
|
|
27
|
+
def visit(ast_node, parent)
|
|
28
|
+
klass = TYPES[ast_node.type] || return
|
|
29
|
+
klass.new.build_from_ast(ast_node).tap do |node|
|
|
30
|
+
parent.children << node
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
data/run.sh
ADDED
metadata
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: imagen
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Jan Grodowski
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2018-05-10 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: parser
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: bundler
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.16'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.16'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rake
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '10.0'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '10.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rspec
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '3.0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '3.0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rubocop
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 0.55.0
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 0.55.0
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: pry
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: simplecov
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: simplecov-lcov
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
description:
|
|
126
|
+
email:
|
|
127
|
+
- jgrodowski@gmail.com
|
|
128
|
+
executables: []
|
|
129
|
+
extensions: []
|
|
130
|
+
extra_rdoc_files: []
|
|
131
|
+
files:
|
|
132
|
+
- ".dockerignore"
|
|
133
|
+
- ".gitignore"
|
|
134
|
+
- ".rspec"
|
|
135
|
+
- ".rubocop.yml"
|
|
136
|
+
- ".travis.yml"
|
|
137
|
+
- Dockerfile
|
|
138
|
+
- Gemfile
|
|
139
|
+
- Gemfile.lock
|
|
140
|
+
- LICENSE.txt
|
|
141
|
+
- README.md
|
|
142
|
+
- Rakefile
|
|
143
|
+
- bin/console
|
|
144
|
+
- bin/setup
|
|
145
|
+
- build.sh
|
|
146
|
+
- imagen_rb.gemspec
|
|
147
|
+
- lib/.gitkeep
|
|
148
|
+
- lib/imagen.rb
|
|
149
|
+
- lib/imagen/clone.rb
|
|
150
|
+
- lib/imagen/node.rb
|
|
151
|
+
- lib/imagen/remote_builder.rb
|
|
152
|
+
- lib/imagen/version.rb
|
|
153
|
+
- lib/imagen/visitor.rb
|
|
154
|
+
- run.sh
|
|
155
|
+
homepage: https://github.com/grodowski/imagen_rb
|
|
156
|
+
licenses:
|
|
157
|
+
- MIT
|
|
158
|
+
metadata: {}
|
|
159
|
+
post_install_message:
|
|
160
|
+
rdoc_options: []
|
|
161
|
+
require_paths:
|
|
162
|
+
- lib
|
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
|
+
requirements:
|
|
165
|
+
- - ">="
|
|
166
|
+
- !ruby/object:Gem::Version
|
|
167
|
+
version: '0'
|
|
168
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
|
+
requirements:
|
|
170
|
+
- - ">="
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: '0'
|
|
173
|
+
requirements: []
|
|
174
|
+
rubyforge_project:
|
|
175
|
+
rubygems_version: 2.7.6
|
|
176
|
+
signing_key:
|
|
177
|
+
specification_version: 4
|
|
178
|
+
summary: Codebase as structure of locatable classes and methods based on the Ruby
|
|
179
|
+
AST
|
|
180
|
+
test_files: []
|