percy-cli 1.1.0 → 1.2.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: 14287976ac597e48a552333274282b29e0a0830f
4
- data.tar.gz: 1d5d21bcc7f43aa3ad78cea1d9792b7fa1df268d
3
+ metadata.gz: 7bc326770317a74d216e80e1726103293eac8e96
4
+ data.tar.gz: 2a879c017a9f1c5dc87a2dc6544a0bec9ea9a226
5
5
  SHA512:
6
- metadata.gz: 22f366e61f3e38fc0037b1ef0ca368c26d4095eec926a2e53763c84b1b80e9cee9a9a550ec4b585ca021e91d3783115ffbfcfdd36045ecdb3996565ea30c5928
7
- data.tar.gz: b2101c71fab5dd0bc323f170b7caddce46fdfe20a422c144aaec4c32e4ce30e56fd779151cf74c3582f84a35f11ed454c186ae7549661d9c2620e1fb0d08bbff
6
+ metadata.gz: 774bbb59c78d30e63e110cf3707deddb753f4af042ae8ffa1717b159438d8f5527a8ba4a6e3ad8762ec577eaa4c45463444abc7dc569f272d802b5c739e87261
7
+ data.tar.gz: a24e6258533ecd62f33cbe19028faa117d9ebb0b2399a98f3d838253a9817876f7c9b01816e45d2811cb0e3adf17f71a8bbc7ef29f9d7bd299ad36237102e585
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in percy-cli.gemspec
4
4
  gemspec
5
+
6
+ gem 'percy-client', path: '~/src/percy-client'
@@ -24,6 +24,7 @@ module Percy
24
24
  snapshot_limit = options[:snapshot_limit]
25
25
  baseurl = options[:baseurl] || '/'
26
26
  enable_javascript = !!options[:enable_javascript]
27
+ widths = options[:widths].map { |w| Integer(w) }
27
28
  raise ArgumentError.new('baseurl must start with /') if baseurl[0] != '/'
28
29
 
29
30
  base_resource_options = {strip_prefix: strip_prefix, baseurl: baseurl}
@@ -66,6 +67,7 @@ module Percy
66
67
  build['data']['id'],
67
68
  [root_resource],
68
69
  enable_javascript: enable_javascript,
70
+ widths: widths,
69
71
  )
70
72
  upload_missing_resources(build, snapshot, all_resources, {num_threads: num_threads})
71
73
  Percy.finalize_snapshot(snapshot['data']['id'])
@@ -93,8 +95,9 @@ module Percy
93
95
  raise ArgumentError.new('block is requried') if !block_given?
94
96
  begin
95
97
  block.call
96
- rescue Percy::Client::HttpError,
97
- Percy::Client::ConnectionFailed,
98
+ rescue Percy::Client::ServerError, # Rescue server errors.
99
+ Percy::Client::PaymentRequiredError, # Rescue quota exceeded errors.
100
+ Percy::Client::ConnectionFailed, # Rescue some networking errors.
98
101
  Percy::Client::TimeoutError => e
99
102
  Percy.logger.error(e)
100
103
  @failed = true
@@ -1,5 +1,5 @@
1
1
  module Percy
2
2
  class Cli
3
- VERSION = '1.1.0'
3
+ VERSION = '1.2.0'
4
4
  end
5
5
  end
data/lib/percy/cli.rb CHANGED
@@ -47,6 +47,10 @@ module Percy
47
47
  '--snapshots_regex REGEX',
48
48
  String,
49
49
  'Regular expression for matching the files to snapshot. Defaults to: "\.(html|htm)$"'
50
+ c.option \
51
+ '--widths CSV',
52
+ String,
53
+ 'Comma-separated list of rendering widths for snapshots. Ex: 320,1280"'
50
54
  c.option \
51
55
  '--snapshot_limit NUM',
52
56
  Integer,
@@ -64,6 +68,7 @@ module Percy
64
68
  options.default threads: DEFAULT_NUM_THREADS
65
69
  options.threads = MAX_NUM_THREADS if options.threads > MAX_NUM_THREADS
66
70
  options.enable_javascript = options.enable_javascript
71
+ options.widths = (options.widths || '').split(',')
67
72
 
68
73
  raise OptionParser::MissingArgument, 'root folder path is required' if args.empty?
69
74
  if args.length > 1
data/percy-cli.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_dependency 'commander', '~> 4.3'
22
- spec.add_dependency 'percy-client', '>= 1.2.0'
22
+ spec.add_dependency 'percy-client', '~> 1.4'
23
23
  spec.add_dependency 'thread', '~> 0.2'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 1.7'
@@ -17,9 +17,16 @@ RSpec.describe Percy::Cli::Snapshot do
17
17
  expect(result).to eq(true)
18
18
  expect(cli.send(:failed?)).to eq(false)
19
19
  end
20
- it 'makes block safe from HttpError' do
20
+ it 'makes block safe from quota exceeded errors' do
21
21
  result = cli.send(:rescue_connection_failures) do
22
- raise Percy::Client::HttpError.new(500, 'POST', '', '')
22
+ raise Percy::Client::PaymentRequiredError.new(409, 'POST', '', '')
23
+ end
24
+ expect(result).to eq(nil)
25
+ expect(cli.send(:failed?)).to eq(true)
26
+ end
27
+ it 'makes block safe from server errors' do
28
+ result = cli.send(:rescue_connection_failures) do
29
+ raise Percy::Client::ServerError.new(502, 'POST', '', '')
23
30
  end
24
31
  expect(result).to eq(nil)
25
32
  expect(cli.send(:failed?)).to eq(true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: percy-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Perceptual Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: percy-client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.2.0
33
+ version: '1.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.2.0
40
+ version: '1.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: thread
43
43
  requirement: !ruby/object:Gem::Requirement