Class: Xaases::Serverless::Yaml
- Inherits:
-
Object
- Object
- Xaases::Serverless::Yaml
- Defined in:
- lib/xaases/serverless/yaml.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
writeonly
Sets the attribute data.
Instance Method Summary collapse
- #add_function(method, path) ⇒ Object
- #add_resource(name, rs) ⇒ Object
-
#initialize(filename, name = nil) ⇒ Yaml
constructor
A new instance of Yaml.
- #provider=(prov) ⇒ Object
- #write ⇒ Object
Constructor Details
#initialize(filename, name = nil) ⇒ Yaml
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/xaases/serverless/yaml.rb', line 8 def initialize(filename, name = nil) @filename = filename begin @data = YAML.load_file filename rescue Errno::ENOENT @data = { 'service' => name, 'provider' => {}, 'resources' => {'Resources' => {}}, 'functions' => {} } end end |
Instance Attribute Details
#data=(value) ⇒ Object (writeonly)
Sets the attribute data
6 7 8 |
# File 'lib/xaases/serverless/yaml.rb', line 6 def data=(value) @data = value end |
Instance Method Details
#add_function(method, path) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/xaases/serverless/yaml.rb', line 30 def add_function(method, path) method = method.downcase file = 'index' name = path.sub(/\A\//, '').sub(/\//, '_') name = nil if name == '' name = ['create', name].compact.join('_') if method == 'post' name = ['update', name].compact.join('_') if method == 'put' name = ['delete', name].compact.join('_') if method == 'delete' name = 'root' if method == 'get' && !name @data['functions'][name] = { 'handler' => "handler.#{name}", 'events' => [{ 'http' => { 'path' => path, 'method' => method }}] } name end |
#add_resource(name, rs) ⇒ Object
26 27 28 |
# File 'lib/xaases/serverless/yaml.rb', line 26 def add_resource(name, rs) @data['resources']['Resources'][name] = rs end |
#provider=(prov) ⇒ Object
22 23 24 |
# File 'lib/xaases/serverless/yaml.rb', line 22 def provider=(prov) @data['provider'] = prov end |
#write ⇒ Object
48 49 50 |
# File 'lib/xaases/serverless/yaml.rb', line 48 def write YAML.dump @data, File.open(@filename, 'w') end |