From 70daca9395a90352cbeab49992457937ef77fb4a Mon Sep 17 00:00:00 2001 From: cabelhigh Date: Mon, 24 Apr 2017 20:37:12 -0700 Subject: [PATCH] Fixed bug that prevented URL images without extensions from being hexed or rgbed --- lib/miro/dominant_colors.rb | 3 ++- spec/cabelhigh_spec_helper.rb | 7 +++++++ spec/miro/Working_URL_Image.rb | 17 +++++++++++++++++ spec/miro/dominant_colors_spec.rb | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 spec/cabelhigh_spec_helper.rb create mode 100644 spec/miro/Working_URL_Image.rb diff --git a/lib/miro/dominant_colors.rb b/lib/miro/dominant_colors.rb index 8a819ae..c7750f1 100644 --- a/lib/miro/dominant_colors.rb +++ b/lib/miro/dominant_colors.rb @@ -92,7 +92,8 @@ def open_source_image return File.open(@src_image_path) unless remote_source_image? original_extension = @image_type || URI.parse(@src_image_path).path.split('.').last - + original_extension = URI.parse(@src_image_path).path.split('/').last if original_extension.length>3 + #Added above line since URL images without extensions would not work tempfile = Tempfile.open(["source", ".#{original_extension}"]) remote_file_data = open(@src_image_path).read diff --git a/spec/cabelhigh_spec_helper.rb b/spec/cabelhigh_spec_helper.rb new file mode 100644 index 0000000..086d030 --- /dev/null +++ b/spec/cabelhigh_spec_helper.rb @@ -0,0 +1,7 @@ +require 'miro' + +RSpec.configure do |config| + config.treat_symbols_as_metadata_keys_with_true_values = true + config.run_all_when_everything_filtered = true + config.filter_run :focus +end diff --git a/spec/miro/Working_URL_Image.rb b/spec/miro/Working_URL_Image.rb new file mode 100644 index 0000000..e40e765 --- /dev/null +++ b/spec/miro/Working_URL_Image.rb @@ -0,0 +1,17 @@ +require 'cabelhigh_spec_helper' + +describe Miro::DominantColors do + context "Old Miro wouldn't work with non-local files" do + let(:online_image) {Miro::DominantColors.new('https://i.scdn.co/image/4c985df11e68ebe6453feea645cd5fa259e43333')} + let(:expected_hexes) { ["#010101", "#e3e4e4", "#021f18", "#0e190e", "#59615d", "#067f5d", '#295521', '#0b4e24']} + it "still successfully creates a new Miro object from an online image" do + online_image.src_image_path.should eq("https://i.scdn.co/image/4c985df11e68ebe6453feea645cd5fa259e43333") + end + + it "can get hex colors from an online image" do + online_image.to_hex.should eq(expected_hexes) + end + end + + +end diff --git a/spec/miro/dominant_colors_spec.rb b/spec/miro/dominant_colors_spec.rb index 79a26f4..90d6252 100644 --- a/spec/miro/dominant_colors_spec.rb +++ b/spec/miro/dominant_colors_spec.rb @@ -184,7 +184,7 @@ end end - describe "#histogram" do + describe "#histogram" do it "should return a hash" do subject.histogram.should be_an_instance_of(Array) end