Class: Resolver
- Defined in:
- lib/vagrant-dnsmasq/includes/Resolver.class.rb
Instance Attribute Summary collapse
-
#dirname ⇒ Object
readonly
Returns the value of attribute dirname.
Class Method Summary collapse
Instance Method Summary collapse
- #delete(domain) ⇒ Object
- #includes?(domain) ⇒ Boolean
-
#initialize(dirname) ⇒ Resolver
constructor
A new instance of Resolver.
- #insert(domain, ip) ⇒ Object
- #list ⇒ Object
Constructor Details
#initialize(dirname) ⇒ Resolver
Returns a new instance of Resolver.
5 6 7 8 9 |
# File 'lib/vagrant-dnsmasq/includes/Resolver.class.rb', line 5 def initialize(dirname) raise ArgumentError, 'wrong dirname' if dirname.blank? raise IOError unless Dir.exists? dirname @dirname = dirname end |
Instance Attribute Details
#dirname ⇒ Object (readonly)
Returns the value of attribute dirname.
3 4 5 |
# File 'lib/vagrant-dnsmasq/includes/Resolver.class.rb', line 3 def dirname @dirname end |
Class Method Details
.flush_cache! ⇒ Object
11 12 13 |
# File 'lib/vagrant-dnsmasq/includes/Resolver.class.rb', line 11 def self.flush_cache! system 'sudo dscacheutil -flushcache' end |
Instance Method Details
#delete(domain) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/vagrant-dnsmasq/includes/Resolver.class.rb', line 30 def delete(domain) raise ArgumentError, 'invalid domain instance' unless domain.is_a? Domain if includes? domain puts "You may be asked for your password to delete #{@dirname}/#{domain.name}" system("sudo rm -rf #{@dirname}/#{domain.name}") Resolver::flush_cache! end end |
#includes?(domain) ⇒ Boolean
40 41 42 43 44 |
# File 'lib/vagrant-dnsmasq/includes/Resolver.class.rb', line 40 def includes?(domain) raise ArgumentError, 'invalid domain instance' unless domain.is_a? Domain File.exists? "#{@dirname}/#{domain.name}" end |
#insert(domain, ip) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/vagrant-dnsmasq/includes/Resolver.class.rb', line 19 def insert(domain, ip) raise ArgumentError, 'invalid domain instance' unless domain.is_a? Domain delete(domain) if includes?(domain) puts "You may be asked for your password to insert #{@dirname}/#{domain.name} (ip: #{ip})" system("sudo sh -c \"echo 'nameserver #{ip.v4}' >> #{@dirname}/#{domain.name}\"") Resolver::flush_cache! end |
#list ⇒ Object
15 16 17 |
# File 'lib/vagrant-dnsmasq/includes/Resolver.class.rb', line 15 def list Dir["#{@dirname}/*"].map{|dir| '.' + File.basename(dir)} end |