Sha256: 19f4d135d4aff08982891c9dd07dddfc0abf8451b2579106fbef0fd643cb8e19

Contents?: true

Size: 1.66 KB

Versions: 36

Compression:

Stored size: 1.66 KB

Contents

module Inch
  module CodeObject
    module Proxy
      # Proxy class for methods
      class MethodObject < Base
        def constructor?
          self[:constructor?]
        end

        def bang_name?
          self[:bang_name?]
        end

        def getter?
          self[:getter?]
        end

        def has_parameters?
          !parameters.empty?
        end

        MANY_PARAMETERS_THRESHOLD = 3
        def has_many_parameters?
          parameters.size > MANY_PARAMETERS_THRESHOLD
        end

        MANY_LINES_THRESHOLD = 20
        def has_many_lines?
          # for now, this includes the 'def' line and comments
          if source
            size = source.lines.count
            size > MANY_LINES_THRESHOLD
          else
            false
          end
        end

        def parameter(name)
          parameters.detect { |p| p.name == name.to_s }
        end

        def parameters
          @parameters ||= self[:parameters].map do |param_attr|
            MethodParameterObject.new(param_attr)
          end
        end

        def overridden?
          self[:overridden?]
        end

        def overridden_method
          @overridden_method ||= object_lookup.find(self[:overridden_method_fullname])
        end

        def return_mentioned?
          self[:return_mentioned?]
        end

        def return_described?
          self[:return_described?]
        end

        def return_typed?
          self[:return_typed?]
        end

        def setter?
          self[:setter?]
        end

        def source
          self[:source?]
        end

        def questioning_name?
          self[:questioning_name?]
        end
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
inch-0.5.0.rc3 lib/inch/code_object/proxy/method_object.rb
inch-0.5.0.rc2 lib/inch/code_object/proxy/method_object.rb
inch-0.5.0.rc1 lib/inch/code_object/proxy/method_object.rb
inch-0.4.6 lib/inch/code_object/proxy/method_object.rb
inch-0.4.5 lib/inch/code_object/proxy/method_object.rb
inch-0.4.4 lib/inch/code_object/proxy/method_object.rb
inch-0.4.4.rc4 lib/inch/code_object/proxy/method_object.rb
inch-0.4.4.rc3 lib/inch/code_object/proxy/method_object.rb
inch-0.4.4.rc2 lib/inch/code_object/proxy/method_object.rb
inch-0.4.4.rc1 lib/inch/code_object/proxy/method_object.rb
inch-0.4.3 lib/inch/code_object/proxy/method_object.rb
inch-0.4.3.rc2 lib/inch/code_object/proxy/method_object.rb
inch-0.4.3.rc1 lib/inch/code_object/proxy/method_object.rb
inch-0.4.2 lib/inch/code_object/proxy/method_object.rb
inch-0.4.1 lib/inch/code_object/proxy/method_object.rb
inch-0.4.0 lib/inch/code_object/proxy/method_object.rb
inch-0.4.0.rc3 lib/inch/code_object/proxy/method_object.rb
inch-0.4.0.rc2 lib/inch/code_object/proxy/method_object.rb
inch-0.4.0.rc1 lib/inch/code_object/proxy/method_object.rb
inch-0.3.4.rc1 lib/inch/code_object/proxy/method_object.rb