Class: Orchparty::ApplicationBuilder

Inherits:
Builder
  • Object
show all
Defined in:
lib/orchparty/dsl_parser.rb

Instance Method Summary collapse

Methods inherited from Builder

build

Constructor Details

#initialize(name) ⇒ ApplicationBuilder

Returns a new instance of ApplicationBuilder.



91
92
93
94
95
96
97
# File 'lib/orchparty/dsl_parser.rb', line 91

def initialize(name)
  @application = AST::Node.new(name: name,
                                      services: {},
                                      mix: [],
                                      mixins: {},
                                      volumes: {})
end

Instance Method Details

#_buildObject



132
133
134
# File 'lib/orchparty/dsl_parser.rb', line 132

def _build
  @application
end

#all(&block) ⇒ Object



108
109
110
111
# File 'lib/orchparty/dsl_parser.rb', line 108

def all(&block)
  @application.all = AllBuilder.build(block)
  self
end

#mix(name) ⇒ Object



99
100
101
# File 'lib/orchparty/dsl_parser.rb', line 99

def mix(name)
  @application.mix << name
end

#mixin(name, &block) ⇒ Object



103
104
105
106
# File 'lib/orchparty/dsl_parser.rb', line 103

def mixin(name, &block)
  @application.mixins[name] = CommonBuilder.build(block)
  self
end

#networks(&block) ⇒ Object



123
124
125
# File 'lib/orchparty/dsl_parser.rb', line 123

def networks(&block)
  @application.networks = HashBuilder.build(block)
end

#service(name, &block) ⇒ Object



127
128
129
130
# File 'lib/orchparty/dsl_parser.rb', line 127

def service(name, &block)
  @application.services[name] = ServiceBuilder.build(name, block)
  self
end

#variables(&block) ⇒ Object



113
114
115
116
# File 'lib/orchparty/dsl_parser.rb', line 113

def variables(&block)
  @application._variables = HashBuilder.build(block)
  self
end

#volumes(&block) ⇒ Object



118
119
120
121
# File 'lib/orchparty/dsl_parser.rb', line 118

def volumes(&block)
  @application.volumes = HashBuilder.build(block)
  self
end