Class: Inch::Language::Elixir::Provider::Reader::Object::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/inch/language/elixir/provider/reader/object/base.rb

Overview

This class is abstract.

Direct Known Subclasses

FunctionObject, ModuleObject, TypeObject

Constant Summary collapse

HIDDEN_TYPES =
%w(defcallback defmacro exception impl)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Base

Returns a new instance of Base.

Parameters:

  • hash (Hash)

    hash returned via JSON interface



12
13
14
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 12

def initialize(hash)
  @hash = hash
end

Instance Attribute Details

#children_fullnamesObject



33
34
35
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 33

def children_fullnames
  @children_fullnames ||= []
end

Instance Method Details

#aliased_object_fullnameObject



49
50
51
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 49

def aliased_object_fullname
  nil
end

#aliases_fullnamesObject



53
54
55
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 53

def aliases_fullnames
  nil
end

#api_tag?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 45

def api_tag?
  nil
end

#attributesObject



57
58
59
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 57

def attributes
  []
end

#bang_name?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 61

def bang_name?
  false
end

#constant?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 65

def constant?
  false # raise NotImplementedError
end

#constructor?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 69

def constructor?
  false
end

#depthObject



73
74
75
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 73

def depth
  fullname.split('.').size
end

#docstringDocstring

Returns:



78
79
80
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 78

def docstring
  @docstring ||= Docstring.new(original_docstring)
end

#filenameObject



28
29
30
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 28

def filename
  nil
end

#filesObject



24
25
26
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 24

def files
  []
end

#fullnameObject



20
21
22
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 20

def fullname
  fail NotImplementedError
end

#getter?Boolean

Returns:

  • (Boolean)


82
83
84
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 82

def getter?
  name =~ /^get_/ # raise NotImplementedError
end

#has_children?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 86

def has_children?
  !children_fullnames.empty?
end

#has_code_example?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 90

def has_code_example?
  docstring.code_examples.size > 0
end

#has_doc?Boolean

Returns:

  • (Boolean)


94
95
96
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 94

def has_doc?
  !undocumented?
end

#has_multiple_code_examples?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 98

def has_multiple_code_examples?
  docstring.code_examples.size > 1
end

#has_unconsidered_tags?Boolean

Returns:

  • (Boolean)


102
103
104
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 102

def has_unconsidered_tags?
  false # raise NotImplementedError
end

#in_root?Boolean

Returns:

  • (Boolean)


172
173
174
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 172

def in_root?
  depth == 1
end

#method?Boolean

Returns:

  • (Boolean)


106
107
108
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 106

def method?
  false
end

#nameObject



16
17
18
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 16

def name
  @hash['name']
end

#namespace?Boolean

Returns:

  • (Boolean)


116
117
118
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 116

def namespace?
  false
end

#nodoc?Boolean

Returns:

  • (Boolean)


111
112
113
114
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 111

def nodoc?
  @hash['doc'] == false ||
    HIDDEN_TYPES.include?(@hash['type'])
end

#original_docstringObject



120
121
122
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 120

def original_docstring
  @hash['doc']
end

#overridden?Boolean

Returns:

  • (Boolean)


124
125
126
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 124

def overridden?
  false # raise NotImplementedError
end

#overridden_method_fullnameObject



128
129
130
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 128

def overridden_method_fullname
  nil # raise NotImplementedError
end

#parametersObject



132
133
134
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 132

def parameters
  []
end

#parent_fullnameObject



37
38
39
40
41
42
43
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 37

def parent_fullname
  if depth == 1
    nil
  else
    fullname.split('.')[0...-1].join('.')
  end
end

#private?Boolean

Returns:

  • (Boolean)


136
137
138
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 136

def private?
  false
end

#protected?Boolean

Returns:

  • (Boolean)


148
149
150
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 148

def protected?
  false
end

#public?Boolean

Returns:

  • (Boolean)


152
153
154
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 152

def public?
  true
end

#questioning_name?Boolean

Returns:

  • (Boolean)


156
157
158
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 156

def questioning_name?
  fullname =~ /\?$/
end

#return_described?Boolean

Returns:

  • (Boolean)


160
161
162
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 160

def return_described?
  false # raise NotImplementedError
end

#return_mentioned?Boolean

Returns:

  • (Boolean)


164
165
166
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 164

def return_mentioned?
  false # raise NotImplementedError
end

#return_typed?Boolean

Returns:

  • (Boolean)


168
169
170
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 168

def return_typed?
  false # raise NotImplementedError
end

#setter?Boolean

Returns:

  • (Boolean)


176
177
178
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 176

def setter?
  name =~ /^set_/ # raise NotImplementedError
end

#sourceObject



180
181
182
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 180

def source
  nil
end

#tagged_as_internal_api?Boolean

Returns:

  • (Boolean)


140
141
142
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 140

def tagged_as_internal_api?
  false
end

#tagged_as_private?Boolean

Returns:

  • (Boolean)


144
145
146
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 144

def tagged_as_private?
  nodoc?
end

#unconsidered_tag_countObject



184
185
186
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 184

def unconsidered_tag_count
  0
end

#undocumented?Boolean

Returns:

  • (Boolean)


188
189
190
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 188

def undocumented?
  original_docstring.nil? || original_docstring.to_s.strip.empty?
end

#visibilityObject



192
193
194
# File 'lib/inch/language/elixir/provider/reader/object/base.rb', line 192

def visibility
  :public
end