valor-dual 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/valor-dual.rb +56 -0
- metadata +79 -0
data/lib/valor-dual.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
class ValorDual
|
5
|
+
|
6
|
+
def initialize(path)
|
7
|
+
data = YAML.load_file(path)
|
8
|
+
@access_key = data["s3"]["access_key"]
|
9
|
+
@secret_key = data["s3"]["secret_access_key"]
|
10
|
+
@region = data["s3"]["region"]
|
11
|
+
@bucket = data["s3"]["bucket"]
|
12
|
+
@versions = data["versions"]
|
13
|
+
end
|
14
|
+
|
15
|
+
def aws_instance(name, file_path)
|
16
|
+
# Create an instance of the Aws::S3::Resource class.
|
17
|
+
s3 = Aws::S3::Resource.new(
|
18
|
+
credentials: Aws::Credentials.new(@access_key, @secret_key),
|
19
|
+
region: @region
|
20
|
+
)
|
21
|
+
|
22
|
+
# Reference the target object by bucket name and key.
|
23
|
+
obj = s3.bucket(@bucket).object(name)
|
24
|
+
|
25
|
+
# Call#upload_file on the object.
|
26
|
+
obj.upload_file(file_path, acl:'public-read')
|
27
|
+
return obj.public_url
|
28
|
+
end
|
29
|
+
|
30
|
+
def create_image(url)
|
31
|
+
dump = Hash.new
|
32
|
+
@array_of_dumps = []
|
33
|
+
@versions.each do |key, value|
|
34
|
+
name = key.dup
|
35
|
+
full_name = Time.now.to_i.to_s << '_' << name << File.extname(URI.parse(url).path)
|
36
|
+
|
37
|
+
image = MiniMagick::Image.open(url)
|
38
|
+
image.resize value
|
39
|
+
image.write(full_name)
|
40
|
+
|
41
|
+
object_url = self.aws_instance(full_name, File.expand_path(full_name))
|
42
|
+
|
43
|
+
dump = { 'version' => name, 'public_url' => object_url}
|
44
|
+
|
45
|
+
@array_of_dumps << dump
|
46
|
+
File.delete(full_name)
|
47
|
+
end
|
48
|
+
return @array_of_dumps
|
49
|
+
end
|
50
|
+
|
51
|
+
def fetch version
|
52
|
+
version_name = @array_of_dumps.find{|i| i['version'] == version }
|
53
|
+
(version_name.nil?) ? "Specify correct version" : version_name["public_url"]
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: valor-dual
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Ashutosh J
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-07-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: aws-sdk
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.1.7
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.1.7
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: mini_magick
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 4.2.7
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 4.2.7
|
46
|
+
description: A simple image resizer which converts image into different resolutions
|
47
|
+
and pushes them onto AWS S3 bucket.
|
48
|
+
email: ashutosh.j@1985.co.in
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- lib/valor-dual.rb
|
54
|
+
homepage: http://rubygems.org/gems/hola
|
55
|
+
licenses:
|
56
|
+
- ''
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
requirements: []
|
74
|
+
rubyforge_project:
|
75
|
+
rubygems_version: 1.8.23
|
76
|
+
signing_key:
|
77
|
+
specification_version: 3
|
78
|
+
summary: Valor-Dual - image resizer!
|
79
|
+
test_files: []
|