Class: FlashFlow::Release::PercyClient
- Inherits:
-
Object
- Object
- FlashFlow::Release::PercyClient
- Defined in:
- lib/flash_flow/release/percy_client.rb
Instance Method Summary collapse
- #find_latest_by_sha(sha) ⇒ Object
- #gen_pdf_diffs(output_file, build_id = nil, threshold = 0.0) ⇒ Object
-
#initialize(config = {}) ⇒ PercyClient
constructor
A new instance of PercyClient.
- #qa_approved?(sha = nil) ⇒ Boolean
- #send_compliance_email ⇒ Object
- #send_release_email ⇒ Object
Constructor Details
#initialize(config = {}) ⇒ PercyClient
Returns a new instance of PercyClient.
10 11 12 13 14 |
# File 'lib/flash_flow/release/percy_client.rb', line 10 def initialize(config={}) @client = initialize_connection!(config) @compliance_config = config['compliance'] @release_sha = config['release_sha'] end |
Instance Method Details
#find_latest_by_sha(sha) ⇒ Object
16 17 18 19 20 |
# File 'lib/flash_flow/release/percy_client.rb', line 16 def find_latest_by_sha(sha) response = get_builds commit = find_commit_by_sha(response, sha) find_build_by_commit_id(response, commit['id']) end |
#gen_pdf_diffs(output_file, build_id = nil, threshold = 0.0) ⇒ Object
40 41 42 43 44 |
# File 'lib/flash_flow/release/percy_client.rb', line 40 def gen_pdf_diffs(output_file, build_id=nil, threshold=0.0) # TODO: Switch this over to Percy.get_comparisons at some point build_id ||= get_build_id PdfDiffGenerator.new.generate(get_comparisons(build_id), output_file, threshold) end |
#qa_approved?(sha = nil) ⇒ Boolean
46 47 48 49 |
# File 'lib/flash_flow/release/percy_client.rb', line 46 def qa_approved?(sha=nil) build = find_latest_by_sha(sha || @release_sha) !build['approved-at'].nil? end |
#send_compliance_email ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/flash_flow/release/percy_client.rb', line 22 def send_compliance_email max_wait_time = @compliance_config['max_wait_time'] || 0 delay = @compliance_config['delay'] || 1 build = find_completed_build_by_sha(@release_sha, max_wait_time, delay) unless build_approved?(build) gen_compliance_pdf_file(build) end end |
#send_release_email ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/flash_flow/release/percy_client.rb', line 32 def send_release_email build = find_latest_by_sha(@release_sha) unless build_approved?(build) mailer.deliver!(:compliance, { percy_build_url: build['web-url'] }) end end |