Module: CapistranoPayload::Format

Included in:
Payload
Defined in:
lib/capistrano-payload/format.rb

Constant Summary collapse

FORMATS =

Allowed formats

[:form, :json, :yaml, :xml]
FORMAT_METHODS =

Method processing assignment

{
  :form => :to_hash,
  :json => :to_json,
  :yaml => :to_yaml,
  :xml  => :to_xml
}

Instance Method Summary collapse

Instance Method Details

#to_hashObject

Returns a payload as HASH



21
22
23
24
25
26
# File 'lib/capistrano-payload/format.rb', line 21

def to_hash
  {
    :capistrano      => @data,
    :payload_version => CapistranoPayload::VERSION
  }
end

#to_jsonObject

Returns a payload as JSON



30
31
32
# File 'lib/capistrano-payload/format.rb', line 30

def to_json
  MultiJson.encode(self.to_hash)
end

#to_xmlObject

Returns a payload as XML



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/capistrano-payload/format.rb', line 42

def to_xml    
  xml = Builder::XmlMarkup.new(:indent => 2)
  xml.instruct!(:xml, :version => '1.0', :encoding => 'UTF-8')
  xml.payload do |p|
    p.capistrano do |c|
      c.action        @data[:action]
      c.message       @data[:message]
      c.version       @data[:version]
      c.application   @data[:application]
      c.deployer do |d|
        c.user        @data[:deployer][:user]
        c.hostname    @data[:deployer][:hostname]
      end
      c.timestamp     @data[:timestamp].iso8601
      c.source do |s|
        c.branch      @data[:source][:branch]
        c.revision    @data[:source][:revision]
        c.repository  @data[:source][:repository]
      end
    end
    p.payload_version CapistranoPayload::VERSION
  end.to_s
end

#to_yamlObject

Returns a payload as YAML



36
37
38
# File 'lib/capistrano-payload/format.rb', line 36

def to_yaml
  YAML.dump(self.to_hash)
end