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.



176
177
178
179
180
# File 'lib/hash_mapper.rb', line 176

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.



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

def filter=(value)
  @filter = value
end

#segmentsObject (readonly)

Returns the value of attribute segments.



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

def segments
  @segments
end

Instance Method Details

#apply_filter(value) ⇒ Object



182
183
184
# File 'lib/hash_mapper.rb', line 182

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

#each(&blk) ⇒ Object



186
187
188
# File 'lib/hash_mapper.rb', line 186

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

#firstObject



190
191
192
# File 'lib/hash_mapper.rb', line 190

def first
  @segments.first
end

#lastObject



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

def last
  @segments.last
end

#sizeObject



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

def size
  @segments.size
end