Class: Picobox::Utils::VisitorByOs

Inherits:
Object
  • Object
show all
Includes:
DomainEventPublisher
Defined in:
lib/picobox/utils/visitor_by_os.rb

Instance Method Summary collapse

Methods included from DomainEventPublisher

#publish_event

Instance Method Details

#visit(subject) ⇒ Object



6
7
8
9
10
# File 'lib/picobox/utils/visitor_by_os.rb', line 6

def visit subject
  @os = subject.os
  method_name = "visit_#{os.to_s}".intern
  send(method_name, subject )
end

#visit_darwin(subject) ⇒ Object

Raises:

  • (::NotImplementedError)


12
13
14
# File 'lib/picobox/utils/visitor_by_os.rb', line 12

def visit_darwin subject
  raise ::NotImplementedError, 'mac not supported'
end

#visit_linux(subject) ⇒ Object

Raises:

  • (::NotImplementedError)


16
17
18
# File 'lib/picobox/utils/visitor_by_os.rb', line 16

def visit_linux subject
  raise ::NotImplementedError, 'linux not supported'
end

#visit_unsupported(subject) ⇒ Object



24
25
26
# File 'lib/picobox/utils/visitor_by_os.rb', line 24

def visit_unsupported subject
  raise Errors::UnsupportedOsError, "#{TTY::Platform.new.os} is not yet supported :("
end

#visit_windows(subject) ⇒ Object

Raises:

  • (::NotImplementedError)


20
21
22
# File 'lib/picobox/utils/visitor_by_os.rb', line 20

def visit_windows subject
  raise ::NotImplementedError, 'windows not supported'
end