second_curtain 0.5.0 → 0.6.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: e612882eec9966ea91629702a511c41c9db33784
4
- data.tar.gz: 2ef83f8df3be270dbff87915d65898c21cec9d13
3
+ metadata.gz: f5fabcd6cadb0d6ce87051406d8f56f7e2aa01e2
4
+ data.tar.gz: 6b5fb2e39c035d03252f292517abafcd7b182a66
5
5
  SHA512:
6
- metadata.gz: 2d0a7d83618a988ddd46f9ae412423b8174ec7c299a101be7434724b63b353a8dc94f9a6cb08c294723c42276f68cd8a6041b8a63196994d96490d0d339c2829
7
- data.tar.gz: d0aca83c9f9d206c15a8b8245b70ce85831f851e2785be388b3028ddb360e0b1cf9c554b2795ffdd555adb84af92635b2e9675ebd232535c41bfb5b9b993e9e2
6
+ metadata.gz: 8d44d903cb8be3f133d2dcea9db5de598b7d78127d1ead3a8bc9bbf6ec7c4e6fecbc53a249ac543c0cb672f39276aec4d8c38010fb973ee4d448a2dc5bab0338
7
+ data.tar.gz: e8e2d625cd39dbdac828e689c9ff4f78da7adb236cfab89d54743e91e39603972eb1baf516563e91f826fd15a217eb3023b2f10e6007b541e889665756620133
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.6.0
2
+
3
+ - Relative URLs for images - [@larslockefeer](https://github.com/larslockefeer)
4
+
1
5
  ## 0.5.0
2
6
 
3
7
  - Improved parsing – @orta
@@ -0,0 +1,21 @@
1
+ class PathUtils
2
+
3
+ # Returns a path composed of components, without leading and trailing slashes
4
+ def self.pathWithComponents(components)
5
+ path = ""
6
+
7
+ for component in components do
8
+ path = self.sanitizePathComponent(path + "/" + self.sanitizePathComponent(component))
9
+ end
10
+
11
+ return path
12
+ end
13
+
14
+ :private
15
+
16
+ # Takes a path component and strips leading and trailing slashes
17
+ def self.sanitizePathComponent(component)
18
+ # Remove leading and trailing slash
19
+ component.gsub(/^\//, "").chomp("/")
20
+ end
21
+ end
@@ -2,6 +2,7 @@ require 'aws-sdk-v1'
2
2
  require 'date'
3
3
  require 'pathname'
4
4
  require 'uri'
5
+ require 'second_curtain/path_utils'
5
6
 
6
7
  class Upload
7
8
  attr_reader :expected_path
@@ -19,13 +20,13 @@ class Upload
19
20
  abort unless path
20
21
 
21
22
  expected_filename = Pathname.new(@expected_path).basename.to_s
22
- expected_object = bucket.objects[path + "/" + expected_filename]
23
+ expected_object = bucket.objects[PathUtils.pathWithComponents([path, expected_filename])]
23
24
  expected_object.write(:file => @expected_path)
24
- @uploaded_expected_url = expected_object.public_url
25
+ @uploaded_expected_url = expected_filename
25
26
 
26
27
  actual_filename = Pathname.new(@actual_path).basename.to_s
27
- actual_object = bucket.objects[path + "/" + actual_filename]
28
+ actual_object = bucket.objects[PathUtils.pathWithComponents([path, actual_filename])]
28
29
  actual_object.write(:file => @actual_path)
29
- @uploaded_actual_url = actual_object.public_url
30
+ @uploaded_actual_url = actual_filename
30
31
  end
31
- end
32
+ end
@@ -1,6 +1,7 @@
1
1
  require 'aws-sdk-v1'
2
2
  require 'second_curtain/upload'
3
3
  require 'second_curtain/web_preview'
4
+ require 'second_curtain/path_utils'
4
5
 
5
6
  class UploadManager
6
7
  def initialize (bucket, path_prefix)
@@ -20,11 +21,11 @@ class UploadManager
20
21
  return nil unless @uploads.count > 0
21
22
 
22
23
  @uploads.each do |upload|
23
- upload.upload(@bucket, @path_prefix)
24
+ upload.upload(@bucket, PathUtils.pathWithComponents([@path_prefix, folder_name]))
24
25
  end
25
26
 
26
27
  preview = WebPreview.new(@uploads)
27
- index_object = @bucket.objects[@path_prefix + folder_name + "/index.html"]
28
+ index_object = @bucket.objects[PathUtils.pathWithComponents([@path_prefix, folder_name, "index.html"])]
28
29
  index_object.write(preview.generate_html)
29
30
  index_object.public_url.to_s
30
31
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'second_curtain'
3
- s.version = '0.5.0'
3
+ s.version = '0.6.0'
4
4
  s.licenses = ['MIT']
5
5
  s.summary = "Upload failing iOS snapshot tests cases to S3."
6
6
  s.description =
@@ -0,0 +1,32 @@
1
+ require './lib/second_curtain/path_utils.rb'
2
+
3
+ describe PathUtils do
4
+ before(:each) do
5
+ end
6
+
7
+ describe "composing a path" do
8
+ it "yields a concatenation of these components without leading and trailing slashes" do
9
+ expect(PathUtils.pathWithComponents(["component1", "component2"])).to eq("component1/component2")
10
+ end
11
+
12
+ it "yields a concatenation of these components without leading and trailing slashes" do
13
+ expect(PathUtils.pathWithComponents(["/component1/component1b/", "/component2/"])).to eq("component1/component1b/component2")
14
+ end
15
+
16
+ it "yields an empty string when called without components" do
17
+ expect(PathUtils.pathWithComponents([])).to eq("")
18
+ end
19
+
20
+ it "yields a string without leading slash when called with an empty first component" do
21
+ expect(PathUtils.pathWithComponents(["", "/component2"])).to eq("component2")
22
+ end
23
+
24
+ it "yields a string without trailing slash when called with an empty last component" do
25
+ expect(PathUtils.pathWithComponents(["component1", ""])).to eq("component1")
26
+ end
27
+
28
+ it "yields an empty string when called with a single slash" do
29
+ expect(PathUtils.pathWithComponents(["/"])).to eq("")
30
+ end
31
+ end
32
+ end
@@ -21,14 +21,12 @@ describe Upload do
21
21
  expect(bucket).to receive(:objects).twice.and_return(doubles)
22
22
 
23
23
  expect(expected_double).to receive(:write).with(anything)
24
- expect(expected_double).to receive(:public_url).and_return("http://exmaple.com/1.png")
25
24
  expect(actual_double).to receive(:write).with(anything)
26
- expect(actual_double).to receive(:public_url).and_return("http://exmaple.com/2.png")
27
25
 
28
26
  upload = Upload.new('/path/to/expected.png', '/path/to/actual.png')
29
27
  upload.upload(bucket, path)
30
28
 
31
- expect(upload.uploaded_expected_url).to eq("http://exmaple.com/1.png")
32
- expect(upload.uploaded_actual_url).to eq("http://exmaple.com/2.png")
29
+ expect(upload.uploaded_expected_url).to eq("expected.png")
30
+ expect(upload.uploaded_actual_url).to eq("actual.png")
33
31
  end
34
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: second_curtain
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ash Furrow
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-06 00:00:00.000000000 Z
12
+ date: 2015-11-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-v1
@@ -360,6 +360,7 @@ files:
360
360
  - lib/second_curtain.rb
361
361
  - lib/second_curtain/kaleidoscope_command.rb
362
362
  - lib/second_curtain/parser.rb
363
+ - lib/second_curtain/path_utils.rb
363
364
  - lib/second_curtain/template.mustache.html
364
365
  - lib/second_curtain/test_suite.rb
365
366
  - lib/second_curtain/upload.rb
@@ -370,6 +371,7 @@ files:
370
371
  - spec/sample_output.txt
371
372
  - spec/second_shutter/kaleidoscope_command_spec.rb
372
373
  - spec/second_shutter/parser_spec.rb
374
+ - spec/second_shutter/path_utils_spec.rb
373
375
  - spec/second_shutter/test_suite_spec.rb
374
376
  - spec/second_shutter/upload_manager_spec.rb
375
377
  - spec/second_shutter/upload_spec.rb