nightcrawler_swift 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49eb3149824e6bb82f13aad83cbb2d39f9257c3c
4
- data.tar.gz: 9350bc6a957b2d75ec215f4f2bbf8fee4a9e4b8b
3
+ metadata.gz: 07c444535368e4be022b752521e3f719f8931bf6
4
+ data.tar.gz: b0db704983287ac4708f7e7fb5d9517ae4dde0de
5
5
  SHA512:
6
- metadata.gz: 83f910d9116f65d0fb9f8f81fd39f3a4f3a35e867f2106f6d4a4994a7d8be4e715064ac10789e1567e9dc56e03133cbacc51870a032d477e4377a49bf8ea0d81
7
- data.tar.gz: f203032ebc81bc80aaeb77ac147fbdc16f08b0d57bbf48aac878ae45be24209e18056b5e0d6b0af39a95f4c03de5b6a459e3c9a2f2f4a499cb467466d74cb971
6
+ metadata.gz: aa23ca377ea692d7b13acb8c1cff296f679e503595da164c7bfe5a37dda84462e64406631fb3fb6280c2086715d7a5cf5ddbda1e09437bae74aeeabaf07bfbb9
7
+ data.tar.gz: 08887d4a0f6b4cf079f35b43e0a054a968e9a72fd59c8fa65230523048f73024f83f268f51386710998d6957a443dce2701764e74fadc883f8b39b92160c556d
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.0
4
+
5
+ - Added support for content-encoding option
6
+ - CLI also supports --content-encoding option
7
+
3
8
  ## 0.8.1
4
9
 
5
10
  - Ensure connected on url getters `catalog, admin_url, upload_url, public_url, internal_url` (pull request #28)
data/README.md CHANGED
@@ -89,7 +89,11 @@ config.nightcrawler_swift.logger = Logger.new(STDOUT)
89
89
 
90
90
  > max_age
91
91
 
92
- It will be used to define *Cache-Control:max-age=<value>* header.
92
+ Defines the *Cache-Control:max-age=<value>* header.
93
+
94
+ > content_encoding
95
+
96
+ Defines the *Content-Encoding:<vaule>* header
93
97
 
94
98
  > retries
95
99
 
@@ -35,6 +35,7 @@ module NightcrawlerSwift::CLI
35
35
  @parser.separator "options:"
36
36
  configure_option_bucket
37
37
  configure_option_max_age
38
+ configure_option_content_encoding
38
39
  configure_option_config
39
40
  configure_option_no_cache
40
41
  configure_option_help
@@ -59,6 +60,15 @@ module NightcrawlerSwift::CLI
59
60
  end
60
61
  end
61
62
 
63
+ def configure_option_content_encoding
64
+ desc = "Custom content-encoding value"
65
+ @parser.on("--content-encoding=VALUE", String, desc) do |value|
66
+ content_encoding = value.to_s
67
+ @runner.options.config_hash[:content_encoding] = content_encoding
68
+ @runner.log "Using content-encoding: #{content_encoding}"
69
+ end
70
+ end
71
+
62
72
  def configure_option_config
63
73
  @parser.on("-c", "--config=PATH", String, "Alternative '#{NightcrawlerSwift::CLI::CONFIG_FILE}' file") do |path|
64
74
  path = File.expand_path(path.strip)
@@ -8,11 +8,15 @@ module NightcrawlerSwift
8
8
  max_age = opts[:max_age] || options.max_age
9
9
  headers.merge!(cache_control: "public, max-age=#{max_age}", expires: expires(max_age)) if max_age
10
10
 
11
+ content_encoding = opts[:content_encoding] || options.content_encoding
12
+ headers.merge!(content_encoding: content_encoding.to_s) if content_encoding
13
+
11
14
  response = put "#{connection.upload_url}/#{path}", body: body, headers: headers
12
15
  [200, 201].include?(response.code)
13
16
  end
14
17
 
15
18
  private
19
+
16
20
  def content_type file
17
21
  MultiMime.by_file(file).content_type
18
22
  end
@@ -1,3 +1,3 @@
1
1
  module NightcrawlerSwift
2
- VERSION = "0.8.1"
2
+ VERSION = "0.9.0"
3
3
  end
@@ -132,6 +132,20 @@ describe NightcrawlerSwift::CLI::OptParser do
132
132
  end
133
133
  end
134
134
 
135
+ ["--content-encoding=VALUE"].each do |switch|
136
+ context switch do
137
+ let(:content_encoding) { 'gzip' }
138
+ let(:command) { switch.gsub(/VALUE/, content_encoding) }
139
+
140
+ it "configures the content-encoding" do
141
+ allow(runner).to receive(:argv).and_return([command])
142
+ allow(runner).to receive(:log)
143
+ subject.parse!
144
+ expect(runner.options.config_hash).to include(content_encoding: content_encoding)
145
+ end
146
+ end
147
+ end
148
+
135
149
  ["--no-cache"].each do |switch|
136
150
  context switch do
137
151
  it "configures use_cache with false" do
@@ -154,6 +154,21 @@ describe NightcrawlerSwift::CLI::Runner do
154
154
  end
155
155
  end
156
156
 
157
+ context "with a custom content-encoding" do
158
+ let(:content_encoding) { 'gzip' }
159
+
160
+ before do
161
+ subject.send :configure_default_options
162
+ expect(subject.options.config_hash).to eql({})
163
+ end
164
+
165
+ it "sets the content-encoding" do
166
+ allow(subject).to receive(:parse_parameters) { subject.options.config_hash[:content_encoding] = content_encoding }
167
+ subject.run
168
+ expect(NightcrawlerSwift.options.content_encoding).to eql content_encoding
169
+ end
170
+ end
171
+
157
172
  context "with no-cache flag" do
158
173
  before do
159
174
  subject.send :configure_default_options
@@ -111,6 +111,23 @@ describe NightcrawlerSwift::Upload do
111
111
  end
112
112
  end
113
113
 
114
+ context "content_encoding" do
115
+ let :default_headers do
116
+ {content_type: "text/css", etag: etag}
117
+ end
118
+
119
+ it "allows custom content_encoding" do
120
+ NightcrawlerSwift.configure
121
+ subject.execute path, file, content_encoding: 'gzip'
122
+ expect(subject).to have_received(:put).with(
123
+ anything,
124
+ hash_including(
125
+ headers: hash_including(content_encoding: "gzip")
126
+ )
127
+ )
128
+ end
129
+ end
130
+
114
131
  context "when response code is 200" do
115
132
  let(:response) { double(:response, code: 200) }
116
133
  it { expect(execute).to be true }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nightcrawler_swift
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - tulios
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-09-24 00:00:00.000000000 Z
12
+ date: 2015-10-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client