Class: BitClust::MethodNamePattern

Inherits:
Object
  • Object
show all
Defined in:
lib/bitclust/methodid.rb

Overview

A MethodNamePattern has #klass, #type, #method and #library. All attributes are string. All attributes are optional.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(c = nil, t = nil, m = nil, lib = nil) ⇒ MethodNamePattern

Returns a new instance of MethodNamePattern.



156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/bitclust/methodid.rb', line 156

def initialize(c = nil, t = nil, m = nil, lib = nil)
  @klass = c
  if c and c.empty?
    @klass = nil
  end
  @type = t
  @method = m
  if m and m.empty?
    @method = nil
  end
  @library = library
  @crecache = []
  @mrecache = []
end

Instance Attribute Details

#klassObject (readonly)

Returns the value of attribute klass.



171
172
173
# File 'lib/bitclust/methodid.rb', line 171

def klass
  @klass
end

#libraryObject (readonly)

Returns the value of attribute library.



174
175
176
# File 'lib/bitclust/methodid.rb', line 174

def library
  @library
end

#methodObject (readonly)

Returns the value of attribute method.



173
174
175
# File 'lib/bitclust/methodid.rb', line 173

def method
  @method
end

#typeObject (readonly)

Returns the value of attribute type.



172
173
174
# File 'lib/bitclust/methodid.rb', line 172

def type
  @type
end

Instance Method Details

#class?Boolean

Returns:

  • (Boolean)


201
202
203
# File 'lib/bitclust/methodid.rb', line 201

def class?
  @klass and (not @type and not @method)
end

#empty?Boolean

Returns:

  • (Boolean)


197
198
199
# File 'lib/bitclust/methodid.rb', line 197

def empty?
  not @klass and not @type and not @method
end

#inspectObject



176
177
178
# File 'lib/bitclust/methodid.rb', line 176

def inspect
  "#<pattern #{esc(@library)}.#{esc(@klass)}#{tesc(@type)}#{esc(@method)}>"
end

#match?(m) ⇒ Boolean

Returns:

  • (Boolean)


190
191
192
193
194
195
# File 'lib/bitclust/methodid.rb', line 190

def match?(m)
  (not @library or m.library.name?(@library || raise)) and
  (not @klass   or m.klass.name?(@klass || raise)) and
  (not @type    or m.typemark == @type) and
  (not @method  or m.name?(@method || raise))
end

#method?Boolean

Returns:

  • (Boolean)


205
206
207
# File 'lib/bitclust/methodid.rb', line 205

def method?
  @method or (@type and @type != '$')
end

#special_variable?Boolean

Returns:

  • (Boolean)


209
210
211
# File 'lib/bitclust/methodid.rb', line 209

def special_variable?
  @type == '$'
end