Class: Bcome::Parser::BreadCrumb

Inherits:
Object
  • Object
show all
Defined in:
lib/objects/parser/bread_crumb.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw_crumbs) ⇒ BreadCrumb

Returns a new instance of BreadCrumb.



14
15
16
17
18
19
20
21
22
23
# File 'lib/objects/parser/bread_crumb.rb', line 14

def initialize(raw_crumbs)
  @raw_crumbs = raw_crumbs.to_s

  if @raw_crumbs.empty?
    @crumbs = []
  else
    validate!
    parse!
  end
end

Instance Attribute Details

#crumbsObject (readonly)

Returns the value of attribute crumbs.



5
6
7
# File 'lib/objects/parser/bread_crumb.rb', line 5

def crumbs
  @crumbs
end

Class Method Details

.parse(raw_crumbs) ⇒ Object



8
9
10
11
# File 'lib/objects/parser/bread_crumb.rb', line 8

def parse(raw_crumbs)
  parser = new(raw_crumbs)
  parser.parse!
end

Instance Method Details

#parse!Object



25
26
27
# File 'lib/objects/parser/bread_crumb.rb', line 25

def parse!
  @crumbs ||= @raw_crumbs.split(':')
end

#validate!Object



29
30
31
# File 'lib/objects/parser/bread_crumb.rb', line 29

def validate!
  # raise Bcome::Exception::InvalidBcomeBreadcrumb.new "- letters, numbers & underscores only" unless @raw_crumbs =~ /^([a-z0-9A-Z_]+)(:\s*[a-z0-9A-Z_]+)*:?$/i
end