fastly 1.1.4 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/lib/fastly/origin.rb CHANGED
@@ -20,21 +20,20 @@ class Fastly
20
20
  #
21
21
  # The domain name of this domain
22
22
 
23
-
24
23
  # Add a Director object to an Origin
25
24
  #
26
25
  # Return true on success and false on failure
27
26
  def add_director(director)
28
- hash = fetcher.client.post(Fastly::Origin.put_path(self)+"/director/#{director.name}")
29
- return !hash.nil?
27
+ hash = fetcher.client.post("#{Origin.put_path(self)}/director/#{director.name}")
28
+ !hash.nil?
30
29
  end
31
30
 
32
31
  # Delete a Director object from an Origin
33
32
  #
34
33
  # Return true on success and false on failure
35
34
  def delete_director(director)
36
- hash = fetcher.client.delete(Fastly::Origin.put_path(self)+"/director/#{director.name}")
37
- return !hash.nil?
35
+ hash = fetcher.client.delete("#{Origin.put_path(self)}/director/#{director.name}")
36
+ !hash.nil?
38
37
  end
39
38
  end
40
39
  end
@@ -3,88 +3,87 @@ class Fastly
3
3
  class RequestSetting < BelongsToServiceAndVersion
4
4
  attr_accessor :service_id, :name, :force_miss, :force_ssl, :action, :bypass_busy_wait, :max_stale_age, :hash_keys, :xff, :time_support, :geo_headers, :default_host, :request_condition
5
5
 
6
- ##
7
- # :attr: service_id
8
- #
9
- # The id of the service this belongs to.
6
+ ##
7
+ # :attr: service_id
8
+ #
9
+ # The id of the service this belongs to.
10
10
 
11
- ##
12
- # :attr: version
13
- #
14
- # The number of the version this belongs to.
11
+ ##
12
+ # :attr: version
13
+ #
14
+ # The number of the version this belongs to.
15
15
 
16
- ##
17
- # :attr: name
18
- #
19
- # The name of the request setting
16
+ ##
17
+ # :attr: name
18
+ #
19
+ # The name of the request setting
20
20
 
21
- ##
22
- # :attr: force_miss
23
- #
24
- # Allows you to force a cache miss for the request. Replaces the item
25
- # in the cache if the content is cacheable
21
+ ##
22
+ # :attr: force_miss
23
+ #
24
+ # Allows you to force a cache miss for the request. Replaces the item
25
+ # in the cache if the content is cacheable
26
26
 
27
- ##
28
- # :attr: force_ssl
29
- #
30
- # Force the request to use SSL, redirecting a non-SSL request to SSL.
27
+ ##
28
+ # :attr: force_ssl
29
+ #
30
+ # Force the request to use SSL, redirecting a non-SSL request to SSL.
31
31
 
32
- ##
33
- # :attr: action
34
- #
35
- # Allows you to terminate request handling and immediately perform an
36
- # action. When set it can be lookup or pass (ignore the cache completely)
32
+ ##
33
+ # :attr: action
34
+ #
35
+ # Allows you to terminate request handling and immediately perform an
36
+ # action. When set it can be lookup or pass (ignore the cache completely)
37
37
 
38
- ##
39
- # :attr: bypass_busy_wait
40
- #
41
- # Disable collapsed forwarding, so you don't wait for other objects to
42
- # origin
38
+ ##
39
+ # :attr: bypass_busy_wait
40
+ #
41
+ # Disable collapsed forwarding, so you don't wait for other objects to
42
+ # origin
43
43
 
44
- ##
45
- # :attr: max_stale_age
46
- #
47
- # How old an object is allowed to be to serve stale-if-error or
48
- # state-while-revalidate
44
+ ##
45
+ # :attr: max_stale_age
46
+ #
47
+ # How old an object is allowed to be to serve stale-if-error or
48
+ # state-while-revalidate
49
49
 
50
- ##
51
- # :attr: hash_keys
52
- #
53
- # Comma separated list of varnish request object fields that should be
54
- # in the hash key
50
+ ##
51
+ # :attr: hash_keys
52
+ #
53
+ # Comma separated list of varnish request object fields that should be
54
+ # in the hash key
55
55
 
56
- ##
57
- # :attr: xff
58
- #
59
- # X-Forwarded-For: should be clear, leave, append, append_all, or
60
- # overwrite
56
+ ##
57
+ # :attr: xff
58
+ #
59
+ # X-Forwarded-For: should be clear, leave, append, append_all, or
60
+ # overwrite
61
61
 
62
- ##
63
- # :attr: timer_support
64
- #
65
- # Injects the X-Timer info into the request for viewing origin fetch
66
- # durations
62
+ ##
63
+ # :attr: timer_support
64
+ #
65
+ # Injects the X-Timer info into the request for viewing origin fetch
66
+ # durations
67
67
 
68
- ##
69
- # :attr: geo_headers
70
- #
71
- # Injects Fastly-Geo-Country, Fastly-Geo-City, and Fastly-Geo-Region
72
- # into the request headers
68
+ ##
69
+ # :attr: geo_headers
70
+ #
71
+ # Injects Fastly-Geo-Country, Fastly-Geo-City, and Fastly-Geo-Region
72
+ # into the request headers
73
73
 
74
- ##
75
- # :attr: default_host
76
- #
77
- # Sets the host header
74
+ ##
75
+ # :attr: default_host
76
+ #
77
+ # Sets the host header
78
78
 
79
- ##
80
- # :attr: request_condition
81
- #
82
- # Name of condition object used to test whether or not these settings
83
- # should be used
79
+ ##
80
+ # :attr: request_condition
81
+ #
82
+ # Name of condition object used to test whether or not these settings
83
+ # should be used
84
84
 
85
- private
86
- def self.path
87
- Util.class_to_path(self, true)
88
- end
85
+ def self.path
86
+ Util.class_to_path(self, true)
87
+ end
89
88
  end
90
89
  end
@@ -3,52 +3,51 @@ class Fastly
3
3
  class ResponseObject < BelongsToServiceAndVersion
4
4
  attr_accessor :service_id, :name, :cache_condition, :request_condition, :status, :response, :content, :content_type
5
5
 
6
- ##
7
- # :attr: service_id
8
- #
9
- # The id of the service this belongs to.
10
-
11
- ##
12
- # :attr: version
13
- #
14
- # The number of the version this belongs to.
15
-
16
- ##
17
- # :attr: name
18
- #
19
- # The name of the response object
20
-
21
- ##
22
- # :attr: cache_condition
23
- #
24
- # Name of the cache condition used to test whether this response object
25
- # should be used.
26
-
27
- ##
28
- # :attr: request_condition
29
- #
30
- # Name of the request condition used to test whether this response object
31
- # should be used.
32
-
33
- ##
34
- # :attr: status
35
- #
36
- # The HTTP status code, defaults to 200
37
-
38
- ##
39
- # :attr: response
40
- #
41
- # The HTTP response, defaults to "Ok"
42
-
43
- ##
44
- # :attr: content
45
- #
46
- # The content to deliver for the response object, can be empty.
47
-
48
- ##
49
- # :attr: content_type
50
- #
51
- # The MIME type of the content, can be empty.
52
-
6
+ ##
7
+ # :attr: service_id
8
+ #
9
+ # The id of the service this belongs to.
10
+
11
+ ##
12
+ # :attr: version
13
+ #
14
+ # The number of the version this belongs to.
15
+
16
+ ##
17
+ # :attr: name
18
+ #
19
+ # The name of the response object
20
+
21
+ ##
22
+ # :attr: cache_condition
23
+ #
24
+ # Name of the cache condition used to test whether this response object
25
+ # should be used.
26
+
27
+ ##
28
+ # :attr: request_condition
29
+ #
30
+ # Name of the request condition used to test whether this response object
31
+ # should be used.
32
+
33
+ ##
34
+ # :attr: status
35
+ #
36
+ # The HTTP status code, defaults to 200
37
+
38
+ ##
39
+ # :attr: response
40
+ #
41
+ # The HTTP response, defaults to "Ok"
42
+
43
+ ##
44
+ # :attr: content
45
+ #
46
+ # The content to deliver for the response object, can be empty.
47
+
48
+ ##
49
+ # :attr: content_type
50
+ #
51
+ # The MIME type of the content, can be empty.
53
52
  end
54
53
  end
@@ -3,66 +3,64 @@ class Fastly
3
3
  class S3Logging < BelongsToServiceAndVersion
4
4
  attr_accessor :service_id, :name, :bucket_name, :access_key, :secret_key, :path, :period, :gzip_level, :format, :response_condition
5
5
 
6
- ##
7
- # :attr: service_id
8
- #
9
- # The id of the service this belongs to.
6
+ ##
7
+ # :attr: service_id
8
+ #
9
+ # The id of the service this belongs to.
10
10
 
11
- ##
12
- # :attr: version
13
- #
14
- # The number of the version this belongs to.
11
+ ##
12
+ # :attr: version
13
+ #
14
+ # The number of the version this belongs to.
15
15
 
16
- ##
17
- # :attr: name
18
- #
19
- # The name for this s3 rule
16
+ ##
17
+ # :attr: name
18
+ #
19
+ # The name for this s3 rule
20
20
 
21
- ##
22
- # :attr: bucket_name
23
- #
24
- # The name of the s3 bucket
21
+ ##
22
+ # :attr: bucket_name
23
+ #
24
+ # The name of the s3 bucket
25
25
 
26
- ##
27
- # :attr: access_key
28
- #
29
- # The bucket's s3 account access key
26
+ ##
27
+ # :attr: access_key
28
+ #
29
+ # The bucket's s3 account access key
30
30
 
31
- ##
32
- # :attr: secret_key
33
- #
34
- # The bucket's s3 account secret key
31
+ ##
32
+ # :attr: secret_key
33
+ #
34
+ # The bucket's s3 account secret key
35
35
 
36
- ##
37
- # :attr: path
38
- #
39
- # The path to upload logs to
36
+ ##
37
+ # :attr: path
38
+ #
39
+ # The path to upload logs to
40
40
 
41
- ##
42
- # :attr: period
43
- #
44
- # How frequently the logs should be dumped (in seconds, default 3600)
41
+ ##
42
+ # :attr: period
43
+ #
44
+ # How frequently the logs should be dumped (in seconds, default 3600)
45
45
 
46
- ##
47
- # :attr: gzip_level
48
- #
49
- # What level of gzip compression to have when dumping the logs (default
50
- # 0, no compression).
46
+ ##
47
+ # :attr: gzip_level
48
+ #
49
+ # What level of gzip compression to have when dumping the logs (default
50
+ # 0, no compression).
51
51
 
52
- ##
53
- # :attr: format
54
- #
55
- # Apache style log formatting
52
+ ##
53
+ # :attr: format
54
+ #
55
+ # Apache style log formatting
56
56
 
57
- ##
58
- # :attr: response_condition
59
- #
60
- # When to execute the s3 logging. If empty, always execute.
57
+ ##
58
+ # :attr: response_condition
59
+ #
60
+ # When to execute the s3 logging. If empty, always execute.
61
61
 
62
- private
63
- # The path here is a bit non-standard
64
- def self.path
65
- "logging/s3"
66
- end
62
+ def self.path
63
+ 'logging/s3'
64
+ end
67
65
  end
68
66
  end
@@ -1,7 +1,9 @@
1
+ # Service object
1
2
  class Fastly
2
3
  # Represents something you want to serve - this can be, for example, a whole web site, a Wordpress site, or just your image servers
3
4
  class Service < Base
4
- attr_accessor :id, :customer_id, :name, :comment
5
+ attr_accessor :id, :customer_id, :name, :comment, :versions
6
+
5
7
  @versions = []
6
8
 
7
9
  ##
@@ -27,7 +29,6 @@ class Fastly
27
29
  #
28
30
  # a free form comment field
29
31
 
30
-
31
32
  ##
32
33
  #
33
34
  # Get a hash of stats from different data centers.
@@ -37,10 +38,9 @@ class Fastly
37
38
  # * hourly
38
39
  # * daily
39
40
  # * all
40
- def stats(type=:all, opts={})
41
- raise Fastly::Error "Unknown stats type #{type}" unless [:minutely,:hourly,:daily,:all].include?(type.to_sym)
42
- hash = fetcher.client.get(Fastly::Service.get_path(self.id)+"/stats/#{type}", opts)
43
- return hash
41
+ def stats(type = :all, opts = {})
42
+ fail Error, "Unknown stats type #{type}" unless [:minutely, :hourly, :daily, :all].include?(type.to_sym)
43
+ fetcher.client.get("#{Service.get_path(id)}/stats/#{type}", opts)
44
44
  end
45
45
 
46
46
  # Return a Invoice object representing the invoice for this service
@@ -48,50 +48,46 @@ class Fastly
48
48
  # If a year and month are passed in returns the invoice for that whole month.
49
49
  #
50
50
  # Otherwise it returns the invoice for the current month so far.
51
- def invoice(year=nil, month=nil)
52
- opts = { :service_id => self.id }
51
+ def invoice(year = nil, month = nil)
52
+ opts = { service_id: id }
53
+
53
54
  unless year.nil? || month.nil?
54
55
  opts[:year] = year
55
56
  opts[:month] = month
56
57
  end
57
- fetcher.get(Fastly::Invoice, opts)
58
+
59
+ fetcher.get(Invoice, opts)
58
60
  end
59
61
 
60
62
  # Purge all assets from this service.
61
63
  def purge_all
62
- fetcher.client.post(Fastly::Service.get_path(self.id)+"/purge_all")
64
+ fetcher.client.post("#{Service.get_path(id)}/purge_all")
63
65
  end
64
66
 
65
67
  # Purge anything with the specific key from the given service.
66
68
  def purge_by_key(key)
67
69
  require_api_key!
68
-
69
- fetcher.client.post(Fastly::Service.get_path(self.id)+"/purge/#{key}")
70
- end
71
-
72
- # Set all the versions that this service has had.
73
- def versions=(versions)
74
- @versions = versions
70
+ fetcher.client.post("#{Service.get_path(id)}/purge/#{key}")
75
71
  end
76
72
 
77
73
  # Get a sorted array of all the versions that this service has had.
78
74
  def versions
79
- @versions.map { |v| Fastly::Version.new(v, fetcher) }.sort { |a,b| a.number.to_i <=> b.number.to_i }
75
+ @versions.map { |v| Version.new(v, fetcher) }.sort { |a, b| a.number.to_i <=> b.number.to_i }
80
76
  end
81
77
 
82
78
  # Get an individual Version object. By default returns the latest version
83
- def version(number=-1)
79
+ def version(number = -1)
84
80
  versions[number]
85
81
  end
86
82
 
87
83
  # A deep hash of nested details
88
- def details(opts={})
89
- fetcher.client.get(Fastly::Service.get_path(self.id)+"/details", opts);
84
+ def details(opts = {})
85
+ fetcher.client.get("#{Service.get_path(id)}/details", opts)
90
86
  end
91
87
 
92
88
  # Get the Customer object for this Service
93
89
  def customer
94
- fetcher.get(Fastly::Customer, customer_id)
90
+ fetcher.get(Customer, customer_id)
95
91
  end
96
92
  end
97
93
 
@@ -105,9 +101,7 @@ class Fastly
105
101
  #
106
102
  # service = fastly.search_services(:name => name, :version => number)
107
103
  def search_services(opts)
108
- klass = Fastly::Service
109
- hash = client.get(klass.post_path+"/search", opts)
110
- return nil if hash.nil?
111
- klass.new(hash, self)
104
+ hash = client.get("#{Service.post_path}/search", opts)
105
+ hash.nil? ? nil : Service.new(hash, self)
112
106
  end
113
107
  end