photein 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 90719855955bcdf3585080664753c65528e9edaad99d2646498965c063ae0299
4
- data.tar.gz: 874d2e1d44defc090968d10f4c000f84c7501d4f5d3a1bff6b2a2145297bf169
3
+ metadata.gz: 0cc58c5e8f3fad9d829ef5963b0503070ffb4d91e7a766e34acbac7149ad5aeb
4
+ data.tar.gz: f2d8a39d9c1c4c0e63354ad273eed73ed4aa2c34b42f2a31699bbf17c90f9282
5
5
  SHA512:
6
- metadata.gz: 9a70c02ce6b74cd0cf58f887d4bf6ba21bdf0df50651f6acd230aa0e6382d6bdf3669d637f4f112acdfc4c5a6d8417425cf7a87f0b28dd6df5383cd539fd339f
7
- data.tar.gz: 0a69d825de1c6f7fb4d81add6db960d2a12793b46e1aa6bb277193511dea0a59bcde2b47b97313419a268b6f38e97cc99e5b75642ebef3cbb88a445d4e1de446
6
+ metadata.gz: db242817983284a1dbc2a3f16dc8929197c2e51f4abee657d8bfa179ac555e7a6c8454fb44bb3622ffd97b22c366bee22ed5b688d4c95d2432369b4df7306c2e
7
+ data.tar.gz: 0d6a7faef4624037b2f71eee2798d72397cde98f5940727f9ef5878c5a8282b8dc6c836ec70cea59724821d0fe31f9192b3fc590357f9dfe77e942edadea10a5
@@ -126,5 +126,16 @@ module Photein
126
126
  .tap { |counter| raise 'Unresolved timestamp conflict' unless [*Array('a'..'z'), nil].include?(counter) }
127
127
  .then { |counter| filename.sub_ext("#{counter}#{filename.extname}") }
128
128
  end
129
+
130
+ class << self
131
+ def for(file)
132
+ file = Pathname(file)
133
+ raise Errno::ENOENT, "#{file}" unless file.exist?
134
+
135
+ [Image, Video].find { |type| type::SUPPORTED_FORMATS.include?(file.extname) }
136
+ .tap { |type| raise ArgumentError, "#{file}: Invalid media file" if type.nil? }
137
+ .then { |type| type.new(file) }
138
+ end
139
+ end
129
140
  end
130
141
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Photein
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: photein
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Lue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-09 00:00:00.000000000 Z
11
+ date: 2021-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mediainfo