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.


150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/bitclust/methodid.rb', line 150

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.


165
166
167
# File 'lib/bitclust/methodid.rb', line 165

def klass
  @klass
end

#libraryObject (readonly)

Returns the value of attribute library.


168
169
170
# File 'lib/bitclust/methodid.rb', line 168

def library
  @library
end

#methodObject (readonly)

Returns the value of attribute method.


167
168
169
# File 'lib/bitclust/methodid.rb', line 167

def method
  @method
end

#typeObject (readonly)

Returns the value of attribute type.


166
167
168
# File 'lib/bitclust/methodid.rb', line 166

def type
  @type
end

Instance Method Details

#class?Boolean

Returns:

  • (Boolean)

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

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

#empty?Boolean

Returns:

  • (Boolean)

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

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

#inspectObject


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

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

#match?(m) ⇒ Boolean

Returns:

  • (Boolean)

184
185
186
187
188
189
# File 'lib/bitclust/methodid.rb', line 184

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

#method?Boolean

Returns:

  • (Boolean)

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

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

#select_classes(cs) ⇒ Object


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

def select_classes(cs)
  return cs unless @klass
  expand_ic(cs, @klass, @crecache)
end

#special_variable?Boolean

Returns:

  • (Boolean)

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

def special_variable?
  @type == '$'
end