valor-dual 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/valor-dual.rb +56 -0
  2. 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: []