Class: HashMapper::PathMap

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/hash_mapper.rb

Overview

contains array of path segments

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Enumerable

#inject_with_index

Constructor Details

#initialize(path) ⇒ PathMap

Returns a new instance of PathMap.



198
199
200
201
202
# File 'lib/hash_mapper.rb', line 198

def initialize(path)
  @path = path.dup
  @segments = parse(path)
  @filter = lambda{|value| value}# default filter does nothing
end

Instance Attribute Details

#filter=(value) ⇒ Object (writeonly)

Sets the attribute filter

Parameters:

  • value

    the value to set the attribute filter to.



195
196
197
# File 'lib/hash_mapper.rb', line 195

def filter=(value)
  @filter = value
end

#pathObject (readonly)

Returns the value of attribute path.



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

def path
  @path
end

#segmentsObject (readonly)

Returns the value of attribute segments.



194
195
196
# File 'lib/hash_mapper.rb', line 194

def segments
  @segments
end

Instance Method Details

#apply_filter(value) ⇒ Object



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

def apply_filter(value)
  @filter.call(value)
end

#each(&blk) ⇒ Object



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

def each(&blk)
  @segments.each(&blk)
end

#firstObject



212
213
214
# File 'lib/hash_mapper.rb', line 212

def first
  @segments.first
end

#lastObject



216
217
218
# File 'lib/hash_mapper.rb', line 216

def last
  @segments.last
end

#sizeObject



220
221
222
# File 'lib/hash_mapper.rb', line 220

def size
  @segments.size
end