class Minitest::RubyGolfMetrics::CharacterCounter
Public Class Methods
new(method_name, previous_method_stack = [])
click to toggle source
# File lib/minitest/ruby_golf_metrics/character_counter.rb, line 10 def initialize(method_name, previous_method_stack = []) @method_name = method_name.to_sym method_stack = previous_method_stack + [@method_name] source = RubyGolf.method(method_name).to_raw_source(strip_enclosure: true) @size = source.strip.gsub(/\s+/, "").size parser = MethodParser.new(source) @children = (RubyGolf.methods(false) - method_stack).map do |method| CharacterCounter.new(method, method_stack) if parser.is_method_called?(method) end.compact end
Public Instance Methods
called_method_sizes()
click to toggle source
# File lib/minitest/ruby_golf_metrics/character_counter.rb, line 29 def called_method_sizes ["#{@method_name}: #{@size}", @children.map(&:called_method_sizes)].flatten.compact end
cumulative_size()
click to toggle source
# File lib/minitest/ruby_golf_metrics/character_counter.rb, line 21 def cumulative_size @size + @children.map(&:cumulative_size).inject(0, &:+) end
self_contained?()
click to toggle source
# File lib/minitest/ruby_golf_metrics/character_counter.rb, line 25 def self_contained? @children.empty? end