Class: AWS::CloudFront::Distribution

Inherits:
Object
  • Object
show all
Defined in:
lib/stacco.rb

Instance Method Summary collapse

Constructor Details

#initialize(client, data) ⇒ Distribution

Returns a new instance of Distribution.



58
59
60
61
# File 'lib/stacco.rb', line 58

def initialize(client, data)
  @client = client
  @data = data
end

Instance Method Details

#aliasesObject



63
64
65
# File 'lib/stacco.rb', line 63

def aliases
  @data[:distribution_config][:aliases][:items]
end

#certificateObject



110
111
112
# File 'lib/stacco.rb', line 110

def certificate
  @data[:distribution_config][:viewer_certificate][:iam_certificate_id]
end

#certificate=(cert_id) ⇒ Object



114
115
116
117
118
119
# File 'lib/stacco.rb', line 114

def certificate=(cert_id)
  @data[:distribution_config][:viewer_certificate] = {
    iam_certificate_id: cert_id,
    ssl_support_method: "sni-only"
  }
end

#configObject



71
72
73
# File 'lib/stacco.rb', line 71

def config
  self.make_exportable(@data[:distribution_config])
end

#idObject



67
68
69
# File 'lib/stacco.rb', line 67

def id
  @data[:id]
end

#make_exportable(o) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/stacco.rb', line 75

def make_exportable(o)
  case o
  when nil
    ""
  when Hash
    h = {}
    o.each{ |k, v| h[k] = make_exportable(v) }
    h
  when Array
    o.map{ |e| make_exportable(e) }
  else
    o
  end
end

#price_classObject



102
103
104
# File 'lib/stacco.rb', line 102

def price_class
  @data[:distribution_config][:price_class].split('_').last.downcase.intern
end

#price_class=(new_class) ⇒ Object



106
107
108
# File 'lib/stacco.rb', line 106

def price_class=(new_class)
  @data[:distribution_config][:price_class] = "PriceClass_#{new_class.to_s.capitalize}"
end

#updateObject



90
91
92
93
94
95
96
97
98
99
100
# File 'lib/stacco.rb', line 90

def update
  begin
    yield

    @client.update_distribution(
      id: self.id,
      distribution_config: self.config,
      if_match: @data[:etag]
    )
  end
end