inch 0.2.3 → 0.3.0.rc1
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 +4 -4
- data/.simplecov +7 -0
- data/TODOS.md +0 -5
- data/config/defaults.rb +26 -1
- data/inch.gemspec +1 -0
- data/lib/inch.rb +2 -1
- data/lib/inch/api.rb +34 -0
- data/lib/inch/api/filter.rb +17 -0
- data/lib/inch/api/get.rb +30 -0
- data/lib/inch/api/list.rb +10 -0
- data/lib/inch/api/options/base.rb +45 -0
- data/lib/inch/api/options/filter.rb +25 -0
- data/lib/inch/api/options/suggest.rb +36 -0
- data/lib/inch/api/stats.rb +7 -0
- data/lib/inch/api/suggest.rb +110 -0
- data/lib/inch/cli.rb +4 -1
- data/lib/inch/cli/command/base.rb +1 -17
- data/lib/inch/cli/command/base_list.rb +3 -63
- data/lib/inch/cli/command/base_object.rb +6 -28
- data/lib/inch/cli/command/list.rb +3 -2
- data/lib/inch/cli/command/options/base.rb +1 -1
- data/lib/inch/cli/command/options/base_list.rb +4 -2
- data/lib/inch/cli/command/options/suggest.rb +9 -8
- data/lib/inch/cli/command/output/base.rb +9 -11
- data/lib/inch/cli/command/output/list.rb +2 -2
- data/lib/inch/cli/command/output/show.rb +2 -10
- data/lib/inch/cli/command/output/stats.rb +4 -3
- data/lib/inch/cli/command/output/suggest.rb +5 -5
- data/lib/inch/cli/command/stats.rb +4 -3
- data/lib/inch/cli/command/suggest.rb +4 -94
- data/lib/inch/code_object.rb +2 -2
- data/lib/inch/code_object/converter.rb +89 -0
- data/lib/inch/code_object/provider.rb +36 -0
- data/lib/inch/code_object/provider/yard.rb +19 -0
- data/lib/inch/code_object/provider/yard/docstring.rb +106 -0
- data/lib/inch/code_object/provider/yard/nodoc_helper.rb +93 -0
- data/lib/inch/code_object/provider/yard/object.rb +55 -0
- data/lib/inch/code_object/provider/yard/object/base.rb +262 -0
- data/lib/inch/code_object/provider/yard/object/class_object.rb +12 -0
- data/lib/inch/code_object/provider/yard/object/constant_object.rb +12 -0
- data/lib/inch/code_object/provider/yard/object/method_object.rb +126 -0
- data/lib/inch/code_object/provider/yard/object/method_parameter_object.rb +88 -0
- data/lib/inch/code_object/provider/yard/object/module_object.rb +12 -0
- data/lib/inch/code_object/provider/yard/object/namespace_object.rb +47 -0
- data/lib/inch/code_object/provider/yard/parser.rb +54 -0
- data/lib/inch/code_object/proxy.rb +5 -3
- data/lib/inch/code_object/proxy/base.rb +103 -110
- data/lib/inch/code_object/proxy/class_object.rb +0 -1
- data/lib/inch/code_object/proxy/method_object.rb +20 -99
- data/lib/inch/code_object/proxy/method_parameter_object.rb +15 -39
- data/lib/inch/code_object/proxy/namespace_object.rb +7 -18
- data/lib/inch/codebase.rb +19 -0
- data/lib/inch/codebase/objects.rb +73 -0
- data/lib/inch/codebase/objects_filter.rb +61 -0
- data/lib/inch/codebase/proxy.rb +22 -0
- data/lib/inch/config.rb +8 -1
- data/lib/inch/evaluation.rb +5 -7
- data/lib/inch/evaluation/file.rb +1 -1
- data/lib/inch/evaluation/grade.rb +1 -1
- data/lib/inch/evaluation/object_schema.rb +3 -1
- data/lib/inch/evaluation/priority_range.rb +44 -0
- data/lib/inch/evaluation/proxy.rb +25 -0
- data/lib/inch/evaluation/proxy/base.rb +146 -0
- data/lib/inch/evaluation/proxy/class_object.rb +8 -0
- data/lib/inch/evaluation/proxy/constant_object.rb +19 -0
- data/lib/inch/evaluation/proxy/method_object.rb +65 -0
- data/lib/inch/evaluation/proxy/module_object.rb +8 -0
- data/lib/inch/evaluation/proxy/namespace_object.rb +27 -0
- data/lib/inch/evaluation/role/base.rb +19 -0
- data/lib/inch/evaluation/role/constant.rb +16 -0
- data/lib/inch/evaluation/role/method.rb +22 -0
- data/lib/inch/evaluation/role/method_parameter.rb +31 -1
- data/lib/inch/evaluation/role/namespace.rb +15 -0
- data/lib/inch/evaluation/role/object.rb +24 -0
- data/lib/inch/rake/suggest.rb +1 -0
- data/lib/inch/utils/read_write_methods.rb +44 -0
- data/lib/inch/{cli → utils}/weighted_list.rb +1 -1
- data/lib/inch/version.rb +1 -1
- data/test/fixtures/simple/lib/broken.rb +8 -0
- data/test/inch/api/filter_test.rb +51 -0
- data/test/inch/api/get_test.rb +22 -0
- data/test/inch/api/list_test.rb +15 -0
- data/test/inch/api/options/base_test.rb +30 -0
- data/test/inch/api/stats_test.rb +15 -0
- data/test/inch/api/suggest_test.rb +26 -0
- data/test/inch/cli/command/list_test.rb +2 -1
- data/test/inch/code_object/converter_test.rb +29 -0
- data/test/inch/code_object/{docstring_test.rb → provider/yard/docstring_test.rb} +13 -13
- data/test/inch/code_object/{nodoc_helper_test.rb → provider/yard/nodoc_helper_test.rb} +6 -6
- data/test/inch/code_object/provider/yard_test.rb +11 -0
- data/test/inch/code_object/provider_test.rb +9 -0
- data/test/inch/code_object/proxy/method_object_test.rb +22 -22
- data/test/inch/code_object/proxy_test.rb +10 -10
- data/test/inch/codebase/objects_test.rb +28 -0
- data/test/inch/codebase/proxy_test.rb +17 -0
- data/test/inch/evaluation/role/base_test.rb +71 -0
- data/test/inch/{cli → utils}/weighted_list_test.rb +2 -2
- data/test/shared/base_list.rb +73 -0
- data/test/test_helper.rb +0 -95
- metadata +89 -24
- data/lib/inch/code_object/docstring.rb +0 -102
- data/lib/inch/code_object/nodoc_helper.rb +0 -107
- data/lib/inch/evaluation/base.rb +0 -157
- data/lib/inch/evaluation/class_object.rb +0 -6
- data/lib/inch/evaluation/constant_object.rb +0 -33
- data/lib/inch/evaluation/method_object.rb +0 -105
- data/lib/inch/evaluation/module_object.rb +0 -6
- data/lib/inch/evaluation/namespace_object.rb +0 -52
- data/lib/inch/evaluation/read_write_methods.rb +0 -21
- data/lib/inch/source_parser.rb +0 -62
- data/test/inch/source_parser_test.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb172151aa6a4cebe01d50b2e38a5b43bc1d10ba
|
4
|
+
data.tar.gz: c19f22f6081241b240eeaee8bdbf2b2d910e7c68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c612a1a55be07cc3d6d120eb21a6e94670d16f3399b260b5837fc91f427cf89f4c54d2fa6bfd73aff747353543eb242032c7325fe871553fdff483f29bfb142e
|
7
|
+
data.tar.gz: ea91964f803278cea9ff25d202090ac67e709a08b96e046490198a48b42ec4e87c7f672c272f01e2ef63534053b80f16b6cc5cdca5f808132cf323a7b5e10ec9
|
data/.simplecov
ADDED
data/TODOS.md
CHANGED
@@ -3,10 +3,5 @@
|
|
3
3
|
* Recognize all relevant options in .yardopts file
|
4
4
|
* --plugin
|
5
5
|
* --[no-]api API
|
6
|
-
* Provide reusable context that filters code objects according to the
|
7
|
-
visibility options
|
8
6
|
* Add support for multiple signatures for methods
|
9
7
|
(realized via the @overload tag in YARD)
|
10
|
-
|
11
|
-
* Think about implicit cases in terms of evaluation:
|
12
|
-
* attr_* methods are automatically assigned a docstring and @param tag
|
data/config/defaults.rb
CHANGED
@@ -27,6 +27,31 @@ Inch::Config.run do
|
|
27
27
|
bg_color :color105
|
28
28
|
end
|
29
29
|
|
30
|
+
priority(:N) do
|
31
|
+
priorities 4..99
|
32
|
+
arrow "\u2191"
|
33
|
+
end
|
34
|
+
|
35
|
+
priority(:NE) do
|
36
|
+
priorities 2...4
|
37
|
+
arrow "\u2197"
|
38
|
+
end
|
39
|
+
|
40
|
+
priority(:E) do
|
41
|
+
priorities 0...2
|
42
|
+
arrow "\u2192"
|
43
|
+
end
|
44
|
+
|
45
|
+
priority(:SE) do
|
46
|
+
priorities -2...0
|
47
|
+
arrow "\u2198"
|
48
|
+
end
|
49
|
+
|
50
|
+
priority(:S) do
|
51
|
+
priorities -99...-2
|
52
|
+
arrow "\u2193"
|
53
|
+
end
|
54
|
+
|
30
55
|
schema(:ConstantObject) do
|
31
56
|
docstring 1.0
|
32
57
|
|
@@ -62,7 +87,7 @@ Inch::Config.run do
|
|
62
87
|
parameters parameters + return_type
|
63
88
|
return_type 0.0
|
64
89
|
end
|
65
|
-
|
90
|
+
|
66
91
|
if object.constructor?
|
67
92
|
return_description 0.0
|
68
93
|
end
|
data/inch.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "bundler", "~> 1.5"
|
27
27
|
spec.add_development_dependency "rake"
|
28
28
|
spec.add_development_dependency "pry"
|
29
|
+
spec.add_development_dependency "minitest", "~> 5.2"
|
29
30
|
|
30
31
|
spec.add_dependency 'sparkr', ">= 0.2.0"
|
31
32
|
spec.add_dependency "term-ansicolor"
|
data/lib/inch.rb
CHANGED
@@ -3,8 +3,9 @@ require "inch/version"
|
|
3
3
|
module Inch
|
4
4
|
end
|
5
5
|
|
6
|
+
require_relative 'inch/api'
|
6
7
|
require_relative 'inch/core_ext'
|
7
|
-
require_relative 'inch/
|
8
|
+
require_relative 'inch/codebase'
|
8
9
|
require_relative 'inch/code_object'
|
9
10
|
require_relative 'inch/evaluation'
|
10
11
|
require_relative 'inch/cli'
|
data/lib/inch/api.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
module Inch
|
2
|
+
# The API module is the entry point for Inch's APIs
|
3
|
+
#
|
4
|
+
# APIs are kind of "use cases" that are utilized by the CLI classes to
|
5
|
+
# actually "do things".
|
6
|
+
#
|
7
|
+
# Example:
|
8
|
+
#
|
9
|
+
# $ inch list lib/**/*.rb --private
|
10
|
+
#
|
11
|
+
# This basically calls something like this:
|
12
|
+
#
|
13
|
+
# codebase = Codebase::Proxy.new(Dir.pwd, ["lib/**/*.rb"], [])
|
14
|
+
# options = {:visibility => [:public, :protected, :private]}
|
15
|
+
# context = API::List.new(codebase, options)
|
16
|
+
# context.objects # => Array
|
17
|
+
#
|
18
|
+
# The List API takes a Codebase::Proxy object and an options
|
19
|
+
# hash or a class in API::Options and returns objects and grade_lists
|
20
|
+
# matching that options.
|
21
|
+
#
|
22
|
+
module API
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require_relative 'api/options/base'
|
27
|
+
require_relative 'api/options/filter'
|
28
|
+
require_relative 'api/options/suggest'
|
29
|
+
|
30
|
+
require_relative 'api/filter'
|
31
|
+
require_relative 'api/get'
|
32
|
+
require_relative 'api/list'
|
33
|
+
require_relative 'api/suggest'
|
34
|
+
require_relative 'api/stats'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Inch
|
2
|
+
module API
|
3
|
+
# Filters a codebase's objects based on given options
|
4
|
+
class Filter
|
5
|
+
attr_reader :codebase
|
6
|
+
attr_reader :objects
|
7
|
+
attr_reader :grade_lists
|
8
|
+
|
9
|
+
def initialize(codebase, options)
|
10
|
+
@codebase = codebase
|
11
|
+
codebase.objects.filter! Options::Filter(options)
|
12
|
+
@objects = codebase.objects.to_a
|
13
|
+
@grade_lists = @codebase.grade_lists
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/inch/api/get.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
module Inch
|
2
|
+
module API
|
3
|
+
# Gets all objects matching the given +object_names+
|
4
|
+
class Get < Filter
|
5
|
+
attr_reader :object
|
6
|
+
|
7
|
+
def initialize(codebase, object_names)
|
8
|
+
super(codebase, {})
|
9
|
+
@objects = find_objects_with_names(object_names)
|
10
|
+
@object = objects.first
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
# Returns all objects matching the given +object_names+
|
16
|
+
#
|
17
|
+
# @param object_names [Array<String>]
|
18
|
+
# @return [Array<CodeObject::Proxy::Base>]
|
19
|
+
def find_objects_with_names(object_names)
|
20
|
+
object_names.map do |object_name|
|
21
|
+
if object = codebase.objects.find(object_name)
|
22
|
+
object
|
23
|
+
else
|
24
|
+
codebase.objects.starting_with(object_name)
|
25
|
+
end
|
26
|
+
end.flatten
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Inch
|
2
|
+
module API
|
3
|
+
module Options
|
4
|
+
class Base
|
5
|
+
class << self
|
6
|
+
# Creates an attribute with an optional default value
|
7
|
+
#
|
8
|
+
# @param name [Symbol] the name of the attribute
|
9
|
+
# @param default [nil] the default value of the attribute
|
10
|
+
# @return [void]
|
11
|
+
def attribute(name, default = nil)
|
12
|
+
define_method(name) do
|
13
|
+
instance_variable_get("@#{name}") || default
|
14
|
+
end
|
15
|
+
@attributes ||= {}
|
16
|
+
@attributes[to_s] ||= []
|
17
|
+
@attributes[to_s] << name
|
18
|
+
end
|
19
|
+
|
20
|
+
def attribute_names
|
21
|
+
@attributes ||= {}
|
22
|
+
@attributes[to_s] ||= []
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def initialize(options_or_hash)
|
27
|
+
self.class.attribute_names.each do |name|
|
28
|
+
read options_or_hash, name
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
protected
|
33
|
+
|
34
|
+
def read(options_or_hash, name)
|
35
|
+
value = if options_or_hash.is_a?(Hash)
|
36
|
+
options_or_hash[name]
|
37
|
+
else
|
38
|
+
options_or_hash.send(name)
|
39
|
+
end
|
40
|
+
instance_variable_set("@#{name}", value)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Inch
|
2
|
+
module API
|
3
|
+
module Options
|
4
|
+
class Filter < Base
|
5
|
+
# This module is included here and in Command::Options::BaseList
|
6
|
+
# to ensure the same default values for the command-line and library
|
7
|
+
# interface
|
8
|
+
module DefaultAttributeValues
|
9
|
+
DEFAULT_VISIBILITY = [:public, :protected]
|
10
|
+
end
|
11
|
+
|
12
|
+
include DefaultAttributeValues
|
13
|
+
|
14
|
+
attribute :visibility, DEFAULT_VISIBILITY
|
15
|
+
attribute :namespaces
|
16
|
+
attribute :undocumented
|
17
|
+
attribute :depth
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.Filter(options_or_hash)
|
21
|
+
Filter.new(options_or_hash)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'inch/evaluation/proxy/base'
|
2
|
+
|
3
|
+
module Inch
|
4
|
+
module API
|
5
|
+
module Options
|
6
|
+
class Suggest < Base
|
7
|
+
# This module is included here and in Command::Options::Suggest
|
8
|
+
# to ensure the same default values for the command-line and library
|
9
|
+
# interface
|
10
|
+
module DefaultAttributeValues
|
11
|
+
DEFAULT_OBJECT_COUNT = 20
|
12
|
+
DEFAULT_FILE_COUNT = 5
|
13
|
+
DEFAULT_PROPER_GRADES = [:A, :B]
|
14
|
+
DEFAULT_GRADES_TO_DISPLAY = [:B, :C, :U]
|
15
|
+
DEFAULT_GRADE_WEIGHTS = [0.2, 0.4, 0.4]
|
16
|
+
DEFAULT_OBJECT_MIN_PRIORITY = 0
|
17
|
+
DEFAULT_OBJECT_MAX_SCORE = ::Inch::Evaluation::Proxy::Base::MAX_SCORE
|
18
|
+
end
|
19
|
+
|
20
|
+
include DefaultAttributeValues
|
21
|
+
|
22
|
+
attribute :object_count, DEFAULT_OBJECT_COUNT
|
23
|
+
attribute :file_count, DEFAULT_FILE_COUNT
|
24
|
+
attribute :proper_grades, DEFAULT_PROPER_GRADES
|
25
|
+
attribute :grades_to_display, DEFAULT_GRADES_TO_DISPLAY
|
26
|
+
attribute :grade_weights, DEFAULT_GRADE_WEIGHTS
|
27
|
+
attribute :object_min_priority, DEFAULT_OBJECT_MIN_PRIORITY
|
28
|
+
attribute :object_max_score, DEFAULT_OBJECT_MAX_SCORE
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.Suggest(options_or_hash)
|
32
|
+
Suggest.new(options_or_hash)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require 'inch/utils/weighted_list'
|
2
|
+
|
3
|
+
module Inch
|
4
|
+
module API
|
5
|
+
class Suggest < Filter
|
6
|
+
def initialize(codebase, options)
|
7
|
+
super
|
8
|
+
@options = Options::Suggest(options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def files
|
12
|
+
list = files_sorted_by_importance
|
13
|
+
how_many = @options.file_count || list.size
|
14
|
+
list[0...how_many]
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Array] the +@options.object_count+ objects the API suggests
|
18
|
+
def objects
|
19
|
+
filter_objects_to_display
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
# @return [Array] all the objects that match +@options+
|
24
|
+
def all_objects
|
25
|
+
relevant_objects
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
# @return [Fixnum] how many objects should be displayed in the output
|
31
|
+
def object_count
|
32
|
+
@options.object_count
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [Array<Fixnum>]
|
36
|
+
# how many objects of each grade should be displayed in the output
|
37
|
+
def object_list_counts
|
38
|
+
@options.grade_weights.map { |w| w * object_count }
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Array] the objects that should be displayed in the output
|
42
|
+
def filter_objects_to_display
|
43
|
+
graded_list = []
|
44
|
+
@options.grades_to_display.map do |grade|
|
45
|
+
r = grade_list(grade)
|
46
|
+
arr = select_by_priority(r.objects, @options.object_min_priority)
|
47
|
+
arr = arr.select { |o| o.score <= @options.object_max_score }
|
48
|
+
graded_list << arr
|
49
|
+
end
|
50
|
+
|
51
|
+
weighted_list = Utils::WeightedList.new(graded_list, object_list_counts)
|
52
|
+
|
53
|
+
list = Codebase::Objects.sort_by_priority(weighted_list.to_a.flatten)
|
54
|
+
|
55
|
+
if list.size > object_count
|
56
|
+
list = list[0...object_count]
|
57
|
+
end
|
58
|
+
list
|
59
|
+
end
|
60
|
+
|
61
|
+
def files_sorted_by_importance
|
62
|
+
list = all_filenames(relevant_objects).uniq.map do |filename|
|
63
|
+
f = Evaluation::File.for(filename, relevant_objects)
|
64
|
+
end
|
65
|
+
|
66
|
+
priority_list = list.select do |f|
|
67
|
+
relevant_grades.include?(f.grade) &&
|
68
|
+
relevant_priorities.include?(f.priority)
|
69
|
+
end
|
70
|
+
|
71
|
+
Codebase::Objects.sort_by_priority(priority_list.empty? ? list : priority_list)
|
72
|
+
end
|
73
|
+
|
74
|
+
def all_filenames(objects)
|
75
|
+
codebase.objects.map do |o|
|
76
|
+
o.files.map(&:first)
|
77
|
+
end.flatten
|
78
|
+
end
|
79
|
+
|
80
|
+
# Returns the unique grades assigned to objects
|
81
|
+
#
|
82
|
+
# grades # => [:A, :B, :C, :U]
|
83
|
+
#
|
84
|
+
# @return [Array<Symbol>]
|
85
|
+
def grades
|
86
|
+
codebase.objects.map(&:grade).uniq
|
87
|
+
end
|
88
|
+
|
89
|
+
def grade_list(grade_symbol)
|
90
|
+
grade_lists.detect { |r| r.grade.to_sym == grade_symbol }
|
91
|
+
end
|
92
|
+
|
93
|
+
def select_by_priority(list, min_priority)
|
94
|
+
list.select { |o| o.priority >= min_priority }
|
95
|
+
end
|
96
|
+
|
97
|
+
def relevant_grades
|
98
|
+
grades.size >= 2 ? grades[-2..-1] : [grades.last].compact
|
99
|
+
end
|
100
|
+
|
101
|
+
def relevant_objects
|
102
|
+
select_by_priority(codebase.objects, @options.object_min_priority)
|
103
|
+
end
|
104
|
+
|
105
|
+
def relevant_priorities
|
106
|
+
(@options.object_min_priority..99)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/lib/inch/cli.rb
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
module Inch
|
2
|
+
# The CLI module is tasked with the deconstruction of CLI calls
|
3
|
+
# into API calls.
|
4
|
+
#
|
5
|
+
# @see Inch::API
|
2
6
|
module CLI
|
3
7
|
class << self
|
4
8
|
# Returns the columns of the terminal window
|
@@ -17,7 +21,6 @@ module Inch
|
|
17
21
|
end
|
18
22
|
|
19
23
|
require_relative 'cli/arguments'
|
20
|
-
require_relative 'cli/weighted_list'
|
21
24
|
require_relative 'cli/sparkline_helper'
|
22
25
|
require_relative 'cli/trace_helper'
|
23
26
|
require_relative 'cli/yardopts_helper'
|
@@ -38,7 +38,7 @@ module Inch
|
|
38
38
|
class Base
|
39
39
|
include TraceHelper
|
40
40
|
|
41
|
-
attr_reader :
|
41
|
+
attr_reader :codebase # @return [Codebase::Proxy]
|
42
42
|
|
43
43
|
# Helper method to run an instance with the given +args+
|
44
44
|
#
|
@@ -97,22 +97,6 @@ module Inch
|
|
97
97
|
def usage
|
98
98
|
"Usage: inch #{name} [options]"
|
99
99
|
end
|
100
|
-
|
101
|
-
private
|
102
|
-
|
103
|
-
# Returns the source parser against the given +paths+, while
|
104
|
-
# excluding all paths given in +excluded+
|
105
|
-
#
|
106
|
-
# @param paths [Array<String>]
|
107
|
-
# @param excluded [Array<String>]
|
108
|
-
# @return [void]
|
109
|
-
def run_source_parser(paths, excluded)
|
110
|
-
debug "Parsing:\n" \
|
111
|
-
" files: #{paths.inspect}\n" \
|
112
|
-
" excluded: #{excluded.inspect}"
|
113
|
-
|
114
|
-
@source_parser = SourceParser.run(paths, excluded)
|
115
|
-
end
|
116
100
|
end
|
117
101
|
end
|
118
102
|
end
|