Module: Easyjour
- Defined in:
- lib/easyjour.rb,
lib/easyjour/version.rb
Defined Under Namespace
Constant Summary collapse
- Version =
'0.0.4'
Class Method Summary collapse
-
.search(service, protocol = :tcp, &block) ⇒ Object
Initiaites a service search, returns an Easyjour::Search.
-
.serve(name, service, port, text_record = {}, protocol = :tcp) ⇒ Object
Makes a new service discoverable.
-
.synchronous_search(timeout, service, protocol = :tcp, &block) ⇒ Object
Searches for a service for timeout seconds and returns the results after stopping the search.
-
.type_from_parts(service, protocol = :tcp) ⇒ Object
Turns a service and protocol into _service._protocol format, automatically defaults to TCP if no protocol is specified.
Class Method Details
.search(service, protocol = :tcp, &block) ⇒ Object
Initiaites a service search, returns an Easyjour::Search. Search will continue until stop is called. Can be given a block for immediate result processing.
Find the HTTP servers that respond in 5 seconds or less
search = Easyjour.search('http') sleep 5 search.stop search.results.each do |result| # access the entire result set puts "http://#resultresult.target:#resultresult.port/" end
Continously find HTTP servers
search = Easyjour.search('http') do |result| puts "http://#resultresult.target:#resultresult.port/" end search.results # result set is updated as servers respond
57 58 59 |
# File 'lib/easyjour.rb', line 57 def self.search(service, protocol = :tcp, &block) Search.new(service, protocol, &block) end |
.serve(name, service, port, text_record = {}, protocol = :tcp) ⇒ Object
Makes a new service discoverable. Service is discoverable until stop is called.
garbage_files is an HTTP server available on port 3000
Easyjour.serve("garbage_files", 'http', 3000)
20 21 22 |
# File 'lib/easyjour.rb', line 20 def self.serve(name, service, port, text_record = {}, protocol = :tcp) Service.new(name, service, port, text_record, protocol = :tcp) end |
.synchronous_search(timeout, service, protocol = :tcp, &block) ⇒ Object
Searches for a service for timeout seconds and returns the results after stopping the search. Can be given a block for immediate result processing.
Find the Git servers that respond in 5 seconds or less
results = Easyjour.search(5, 'git') results.each do |result| puts "git://#resultresult.target:#resultresult.port" end
69 70 71 72 73 74 |
# File 'lib/easyjour.rb', line 69 def self.synchronous_search(timeout, service, protocol = :tcp, &block) search = Search.new(service, protocol, &block) sleep timeout search.stop search.results end |
.type_from_parts(service, protocol = :tcp) ⇒ Object
Turns a service and protocol into _service._protocol format, automatically defaults to TCP if no protocol is specified. Also gracefully handles a service that is already in the _service._protocol format format.
8 9 10 11 12 13 14 |
# File 'lib/easyjour.rb', line 8 def self.type_from_parts(service, protocol = :tcp) if service =~ /^_\w+\._\w+$/ service else "_#{service}._#{protocol}" end end |