Class: Vines::Services::Config::Host
- Inherits:
-
Object
- Object
- Vines::Services::Config::Host
- Defined in:
- lib/vines/services/config.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(name, &block) ⇒ Host
constructor
A new instance of Host.
- #start ⇒ Object
- #storage(name = nil, &block) ⇒ Object
- #uploads(dir = nil) ⇒ Object
- #upstream(host, port, password) ⇒ Object
Constructor Details
#initialize(name, &block) ⇒ Host
Returns a new instance of Host.
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/vines/services/config.rb', line 56 def initialize(name, &block) @name, @storage, @uploads, @upstream = name, nil, nil, [] instance_eval(&block) raise "storage required for #{@name}" unless @storage raise "upstream connection required for #{@name}" if @upstream.empty? unless @uploads @uploads = File.('data/upload') FileUtils.mkdir_p(@uploads) end end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
54 55 56 |
# File 'lib/vines/services/config.rb', line 54 def name @name end |
Instance Method Details
#start ⇒ Object
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/vines/services/config.rb', line 92 def start @upstream.each do |info| stream = Vines::Services::Connection.new( host: info[:host], port: info[:port], password: info[:password], vhost: self) stream.start end end |
#storage(name = nil, &block) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'lib/vines/services/config.rb', line 77 def storage(name=nil, &block) if name raise "one storage mechanism per host allowed" if @storage @storage = Storage.from_name(name, &block) else @storage end end |
#uploads(dir = nil) ⇒ Object
67 68 69 70 71 72 73 74 75 |
# File 'lib/vines/services/config.rb', line 67 def uploads(dir=nil) return @uploads unless dir @uploads = File.(dir) begin FileUtils.mkdir_p(@uploads) rescue raise "can't create #{@uploads}" end end |
#upstream(host, port, password) ⇒ Object
86 87 88 89 90 |
# File 'lib/vines/services/config.rb', line 86 def upstream(host, port, password) raise 'host, port, and password required for upstream connections' unless host && port && password @upstream << {host: host, port: port, password: password} end |