blobsterix_carrierwave 0.0.7

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8ea3e909ae2f9f7de7dede8bee31dcdffb2d2ad1
4
+ data.tar.gz: 10456d10772b34e0200757b561ad3348e7c7fa21
5
+ SHA512:
6
+ metadata.gz: 93dedde583457804200e53ffc0fe0777ae34d7a3486bb9ce010d9b096acbfa579b9e16a7c8949005c6c1bd9cad87da3c1ef43f8029ddacec778c17f5aaf4b315
7
+ data.tar.gz: 9496905c70773e445d2965eb38b36ee7a1a6abfa794b418a0648ddd96b26c54a004711b302b891b552c611fe81fb9b43d7ae14e3d0b48c0985244eaaff6dbb63
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .ruby-gemset
19
+ .ruby-version
20
+ .rbenv-gemsets
data/CHANGELOG.txt ADDED
@@ -0,0 +1,9 @@
1
+ = 0.0.6
2
+ * just version bump
3
+ = 0.0.5
4
+ * adding resize_max
5
+ * renaming scale to resize
6
+ = 0.0.4
7
+ * fixing scale options
8
+ = 0.0.3
9
+ * first rc
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in blobsterix_carrierwave.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 dsudmann
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,93 @@
1
+ # BlobsterixCarrierwave
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'blobsterix_carrierwave'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install blobsterix_carrierwave
18
+
19
+ ## Usage
20
+
21
+ Setup:
22
+ # Configuration to setup carrierwave. This is needed for everything to work
23
+ CarrierWave.configure do |config|
24
+ config.fog_credentials = {
25
+ :provider => 'AWS', # required
26
+ :aws_access_key_id => 'xxx', # required
27
+ :aws_secret_access_key => 'yyy', # required
28
+ :region => 'eu-west-1', # optional, defaults to 'us-east-1'
29
+ :host => 'blob.localhost.local', # this hast to have 3 levels so the s3 libs can split them, won't ever be used
30
+ :connection_options => {:proxy => "http://#{Pjpp.config.blobsterix_upload_host_port}" }, #need a proxy as the s3 interface uses hostnames
31
+ #won't mess with dynamic DNS, THIS IS THE REAL upload host
32
+ :endpoint => "http://blob.localhost.local" # same as host, won't ever be used
33
+ }
34
+ config.fog_directory = 'pjpp' # required, can be overridden in each uploader
35
+ config.fog_public = true # optional, defaults to true, and actually not used here anymore.
36
+ config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
37
+ config.delete_tmp_file_after_storage = true
38
+ config.remove_previously_stored_files_after_update = true
39
+ config.asset_host = proc do |uploader|
40
+ BlobsterixAdhocTransforms::Generator.new(:host => Pjpp.config.blobsterix_host_port, :uploader => uploader, :trafos => uploader.remote_processors)
41
+ end
42
+ end
43
+
44
+ # Simple uploader. Image is scaled to fit hight restriction, converted to png and stripped of all commentary data during upload
45
+ # Now during download it offers three version. One without any transformation which will allow blobsterix to decide what is the best content type.
46
+ # In case of images Chrome user would get webp images. The raw version restricts blobsterix to deliver the image in the same format it is saved on the server.
47
+ # And in case of the crazy version it will rotate the image and then convert to best format again since its not locked.
48
+ # The usage of the uploader is like the normal carrierwave.
49
+ class CompanyLogoUploader < BlobsterixUploader
50
+
51
+ process :resize => ["", "300"]
52
+ process :strip
53
+ process :set_format => "png"
54
+
55
+ def store_dir
56
+ "company_logos"
57
+ end
58
+
59
+ def bucket
60
+ "jobapp"
61
+ end
62
+
63
+ version :raw do
64
+ process :set_format => "raw"
65
+ end
66
+
67
+ version :crazy do
68
+ process :rotate => 25
69
+ end
70
+
71
+ def name_on_server
72
+ "#{model.id}_#{Time.new.to_i}"
73
+ end
74
+ end
75
+
76
+ # Since the transformations are done on the fly and not in the application during upload, the uploader also allows custom transforms that do not have to be hardcoded.
77
+ # instead of:
78
+
79
+ company_logo.raw.url
80
+
81
+ # you can do
82
+
83
+ company_logo.custom.resize(200).rotate(25).url
84
+
85
+ # this will generate the url and blobsterix will generate the image on the fly.
86
+
87
+ ## Contributing
88
+
89
+ 1. Fork it
90
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
91
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
92
+ 4. Push to the branch (`git push origin my-new-feature`)
93
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "fileutils"
4
+ puts "Blobsterix upload generator"
5
+ if ARGV.length == 0
6
+ puts "Usage: "
7
+ puts "\tblobsterix_uploader uploader_name"
8
+ exit
9
+ end
10
+
11
+
12
+ template = File.read(File.join(File.dirname(__FILE__), "../config/uploader_template.rb"))
13
+ template = template.gsub("$UploaderName", ARGV[0].capitalize)
14
+
15
+ if !File.exist?(File.join(Dir.pwd, "app/uploaders/#{ARGV[0].downcase}_uploader.rb"))
16
+ FileUtils.mkdir_p(File.join(Dir.pwd, "app/uploaders"))
17
+ File.open(File.join(Dir.pwd, "app/uploaders/#{ARGV[0].downcase}_uploader.rb"), "w+") {|f|
18
+ f.write(template)
19
+ }
20
+ puts "Generated new uploader"
21
+ else
22
+ puts "Uploader already exists"
23
+ end
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/blobsterix_carrierwave/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Daniel Sudmann"]
6
+ gem.email = ["suddani@googlemail.com"]
7
+ gem.description = "This gem is used to create a carrierwave binding to a blobsterix server"
8
+ gem.summary = "This gem is used to create a carrierwave binding to a blobsterix server"
9
+ gem.homepage = "http://experteer.com"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "blobsterix_carrierwave"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = BlobsterixCarrierwave::VERSION
17
+
18
+ gem.add_dependency "carrierwave", "~> 0.9.0"
19
+ gem.add_dependency "fog" , "~> 1.3.1"
20
+ end
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+
3
+ class $UploaderNameUploader < BlobsterixUploader
4
+
5
+ # When setting a global process it is applied when
6
+ # uploaded to a blobsterix server
7
+ #process :resize => ["", "300"]
8
+
9
+ # This sets a directory inside a bucket
10
+ # only used for cosmetic reasons
11
+ #def store_dir
12
+ # "some_dir"
13
+ #end
14
+
15
+ # This function overrides the bucket set
16
+ # in the carrierwave fog config
17
+ # only use if this uploader should use a different bucket
18
+ #def bucket
19
+ # "jobapp"
20
+ #end
21
+
22
+ # Versions work the same as in normal carrierwave
23
+ # with the difference that versions are generated
24
+ # on the server when requested and are not generated
25
+ # when uploading
26
+ #version :raw do
27
+ # process :resize => 100
28
+ # process :rotate => 25
29
+ # process :set_format => "raw"
30
+ #end
31
+
32
+ # This function is used to set the name of the file
33
+ # on the server to something else than the actual upload
34
+ # filename. So only use it when that behaviour is desired.
35
+ # Example: It can be used to generate timestamped names
36
+ # to invalidate the client cache
37
+ #def name_on_server
38
+ # "#{model.id}_#{Time.new.to_i}"
39
+ #end
40
+ end
@@ -0,0 +1,103 @@
1
+ # encoding: utf-8
2
+ module BlobsterixAdhocTransforms
3
+ extend BlobsterixTransforms
4
+ class Generator
5
+ def initialize(options={})
6
+ # host
7
+ # bucket
8
+ # path
9
+ # trafos <- array with transform methods and
10
+ # uploader <- BlobsterixCarrierWaveUploader
11
+ @options = options || {}
12
+ @chain=[]
13
+
14
+ #init the trafos
15
+ (@options[:trafos] || []).each{|t|
16
+ c.send(t[0], t[1])
17
+ }
18
+ end
19
+
20
+ def clear_trafo
21
+ @chain = []
22
+ self
23
+ end
24
+
25
+ def set_path(path)
26
+ @options[:path] = path
27
+ self
28
+ end
29
+
30
+ def url(path=nil)
31
+ @options[:path] = path if path
32
+ "#{asset_host}#{encoded_path}"
33
+ end
34
+
35
+ def url_s3(path=nil, use_subdomain=true)
36
+ @options[:path] = path if path
37
+
38
+ "#{s3_host(use_subdomain)}#{encoded_path}"
39
+ end
40
+
41
+ def transform(encrypt=true)
42
+ trafo = @chain.map{|trafo|
43
+ "#{trafo[:method]}_#{trafo[:args]}"
44
+ }.join(",")
45
+ encrypt ? BlobsterixCarrierwave.encrypt_trafo(trafo, self) : trafo
46
+ end
47
+
48
+ def has_transform?
49
+ !@chain.empty?
50
+ end
51
+
52
+ def method_missing(method, *args)
53
+ if BlobsterixAdhocTransforms.respond_to?(method)
54
+ @chain << BlobsterixAdhocTransforms.send(method, *args)
55
+ else
56
+ #shit!
57
+ end
58
+ self
59
+ end
60
+
61
+ def uploader
62
+ @options[:uploader]
63
+ end
64
+
65
+ private
66
+ def version
67
+ @options[:version] || 1
68
+ end
69
+ def encoded_path
70
+ @options[:path] || ""
71
+ end
72
+ def s3_host(use_subdomain)
73
+ if (use_subdomain)
74
+ "http://#{bucket}.#{@options[:host]}/"
75
+ else
76
+ "http://#{@options[:host]}/#{bucket}/"
77
+ end
78
+ end
79
+ def asset_host
80
+
81
+ host = @options[:host] || ""
82
+ if host.respond_to? :call and @options.has_key?(:uploader)
83
+ host.call(self)
84
+ else
85
+ trafo = transform
86
+ if trafo.length > 0
87
+ "http://#{host}/blob/v#{version}/#{trafo}.#{bucket}/"
88
+ else
89
+ "http://#{host}/blob/v#{version}/#{bucket}/"
90
+ end
91
+ end
92
+
93
+ #"http://localhost:9000/blob/v1/#{trafo}.#{uploader.fog_directory}/"
94
+ end
95
+ def bucket()
96
+ if @options.has_key?(:uploader)
97
+ @options[:uploader].fog_directory
98
+ else
99
+ @options[:bucket] || "main"
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,84 @@
1
+ # encoding: utf-8
2
+ module Blobsterix
3
+ module CarrierWave
4
+ #crazy version stuff not needed anymore
5
+ def recreate_versions!
6
+ # Do nothing
7
+ # puts "Recreate versions"
8
+ end
9
+
10
+ def cache_versions!(new_file=nil)
11
+ # Do nothing
12
+ # puts "Cache versions"
13
+ end
14
+
15
+ def store_versions!(new_file=nil)
16
+ # Do nothing
17
+ # puts "Store versions"
18
+ end
19
+
20
+ def remove_versions!(new_file=nil)
21
+ # Do nothing
22
+ # puts "Remove versions"
23
+ end
24
+
25
+ def retrieve_versions_from_cache!(new_file=nil)
26
+ # Do nothing
27
+ # puts "retrieve_versions_from_cache: #{version_name}"
28
+ end
29
+
30
+ def retrieve_versions_from_store!(new_file=nil)
31
+ # Do nothing
32
+ # puts "retrieve_versions_from_store: #{new_file.inspect}, #{version_name}"
33
+ super(new_file)
34
+ end
35
+
36
+ def process!(new_file=nil)
37
+ # Do nothing
38
+ # puts "Doing process for #{new_file.inspect} on #{self.inspect}"
39
+ end
40
+
41
+ def remote_process!(encrypt=true)
42
+ if enable_processing
43
+ #Deactivate conditional stuff
44
+ # self.class.processors.each do |method, args, condition|
45
+ # if(condition)
46
+ # next if !(condition.respond_to?(:call) ? condition.call(self, :args => args, :method => method, :file => new_file) : self.send(condition, new_file))
47
+ # end
48
+ # puts "Do: #{method} with #{args.inspect}"
49
+ # trafos.send(method, *args)
50
+ # end
51
+ BlobsterixAdhocTransforms::Generator.new(:trafos => self.class.processors.map{|method, args, condition|[method, args]}).transform(encrypt)
52
+ else
53
+ ""
54
+ end
55
+ end
56
+
57
+ def remote_processors()
58
+ # puts "Version: #{version_name}"
59
+ if enable_processing and version_name
60
+ current_processor = self.class
61
+ remote_processor_array = []
62
+ until current_processor.parent == Object
63
+ remote_processor_array+=current_processor.processors.map{|method, args, condition|[method, args]}
64
+ current_processor = current_processor.parent
65
+ end
66
+ remote_processor_array
67
+ else
68
+ []
69
+ end
70
+ end
71
+
72
+ private
73
+ #much important, very nice, wow
74
+ def full_filename(for_file)
75
+ #[remote_process!, for_file].join(".")
76
+ for_file
77
+ end
78
+
79
+ #url call somehow broken so just call it directly
80
+ # def url(options = {})
81
+ # file.url(options)
82
+ # end
83
+ end
84
+ end
@@ -0,0 +1,95 @@
1
+ # encoding: utf-8
2
+ module CarrierWave
3
+ module Storage
4
+ class BlobsterixStore < Fog
5
+ # From Abstract
6
+ # attr_reader :uploader
7
+
8
+ # def initialize(uploader)
9
+ # @uploader = uploader
10
+ # puts "Init BlobsterixStore"
11
+ # end
12
+
13
+ # def identifier
14
+ # uploader.filename
15
+ # end
16
+
17
+ #################
18
+ # Abstract provides stubs we must implement.
19
+ #
20
+ # Create and save a file instance to your engine.
21
+ def store!(file)
22
+ # puts "Called store: #{file.inspect} with #{uploader.processors}"
23
+ f = File.new(uploader, self, uploader.store_path)
24
+ f.store(file)
25
+ f
26
+ end
27
+
28
+ # Load and return a file instance from your engine.
29
+ def retrieve!(identifier)
30
+ # puts "Called retrieve: #{identifier.class}:#{identifier}"
31
+ File.new(uploader, self, uploader.store_path(identifier))
32
+ end
33
+
34
+ # Subclass or duck-type CarrierWave::SanitizedFile ; responsible for storing the file to your engine.
35
+ class File < Fog::File
36
+ def initialize(uploader, base, path)
37
+ @uploader, @base, @path = uploader, base, path
38
+ end
39
+
40
+ def url(options = {})
41
+ # puts "Get file url: #{options}, #{@uploader.version_name}"
42
+ u = super(options)
43
+ # puts "Url is now: #{u}"
44
+ u
45
+ end
46
+
47
+ def store(new_file)
48
+ fog_file = new_file.to_file
49
+ @content_type ||= new_file.content_type
50
+ @file = directory.files.new({
51
+ :body => fog_file ? fog_file : new_file.read,
52
+ :content_type => @content_type,
53
+ :key => path,
54
+ :public => @uploader.fog_public,
55
+ :collection => directory.files,
56
+ :connection => directory.files.connection
57
+ }.merge(@uploader.fog_attributes))
58
+ @file.metadata={"x-amz-meta-trafo" => @uploader.remote_process!(false)}
59
+ @file.save()
60
+ fog_file.close if fog_file && !fog_file.closed?
61
+ true
62
+ end
63
+
64
+ def public_url
65
+ @uploader.asset_host.url(encode_path(path))
66
+ end
67
+
68
+ def read
69
+ super()
70
+ end
71
+ def size
72
+ super()
73
+ end
74
+ def delete
75
+ super()
76
+ end
77
+ def exists?
78
+ url = BlobsterixAdhocTransforms::Generator.new(:host => @uploader.fog_credentials[:connection_options][:proxy].gsub("http://",""), :uploader => @uploader, :path => @path).url_s3(nil, false)
79
+ # puts "Check url: #{url}"
80
+ uri = URI(url)
81
+ return_code = 404
82
+ Net::HTTP.start(uri.host, uri.port) do |http|
83
+ response = http.get uri.path # Net::HTTPResponse object
84
+ response.code
85
+ end == "200"
86
+ end
87
+ # Others... ?
88
+ def process
89
+ end
90
+
91
+ end # File
92
+
93
+ end # MyEngine
94
+ end # Storage
95
+ end # CarrierWave
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+ module BlobsterixTransforms
3
+ def resize(args)
4
+ args=[args].flatten
5
+ width=args[0]
6
+ height=args[1]
7
+ {
8
+ :method => "resize",
9
+ :args => "#{width}x#{height}"
10
+ }
11
+ end
12
+ def resizemax(args)
13
+ args=[args].flatten
14
+ width=args[0]
15
+ height=args[1]
16
+ {
17
+ :method => "resizemax",
18
+ :args => "#{width}x#{height}"
19
+ }
20
+ end
21
+ def rotate(angle)
22
+ {
23
+ :method => "rotate",
24
+ :args => "#{angle}"
25
+ }
26
+ end
27
+ def raw_image(e)
28
+ {
29
+ :method => "raw",
30
+ :args => ""
31
+ }
32
+ end
33
+ def set_format(format, option = "")
34
+ {
35
+ :method => format,
36
+ :args => option
37
+ }
38
+ end
39
+ def strip(e)
40
+ {
41
+ :method => "strip",
42
+ :args => ""
43
+ }
44
+ end
45
+ end
@@ -0,0 +1,86 @@
1
+ # encoding: utf-8
2
+ class BlobsterixUploader < CarrierWave::Uploader::Base
3
+
4
+ include CarrierWave::MimeTypes
5
+ include Blobsterix::CarrierWave
6
+
7
+ #storage :file
8
+ storage CarrierWave::Storage::BlobsterixStore
9
+
10
+ include BlobsterixTransforms
11
+
12
+ after :store, :done_store
13
+ before :store, :before_store
14
+
15
+ def before_store obj
16
+ #puts "Start with storing"
17
+ end
18
+ def done_store obj
19
+ #puts "Done with storing"
20
+ end
21
+
22
+ # Override the directory where uploaded files will be stored.
23
+ # This is a sensible default for uploaders that are meant to be mounted:
24
+ def store_dir
25
+ #puts "Would say: uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
26
+ "images"
27
+ #"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
28
+ end
29
+
30
+ def fog_directory
31
+ bucket || super()
32
+ end
33
+
34
+ def bucket
35
+ nil
36
+ end
37
+
38
+ def custom
39
+ asset_host.set_path(path).clear_trafo
40
+ end
41
+
42
+ def filename
43
+ if original_filename.present? and respond_to?(:name_on_server)
44
+ name_on_server
45
+ else
46
+ super()
47
+ end
48
+ end
49
+
50
+ # Provide a default URL as a default if there hasn't been a file uploaded:
51
+ # def default_url
52
+ # # For Rails 3.1+ asset pipeline compatibility:
53
+ # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
54
+ #
55
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
56
+ # end
57
+
58
+ # Process files as they are uploaded:
59
+ #process :resize => ["", "300"]
60
+ #process :rotate => 45
61
+ #
62
+
63
+
64
+
65
+ # Create different versions of your uploaded files:
66
+ # version :thumb do
67
+ # process :resize => [50, "50!"]
68
+ # end
69
+
70
+ # version :face do
71
+ # process :resize => [10, 10]
72
+ # end
73
+
74
+ # Add a white list of extensions which are allowed to be uploaded.
75
+ # For images you might use something like this:
76
+ # def extension_white_list
77
+ # %w(jpg jpeg gif png)
78
+ # end
79
+
80
+ # Override the filename of the uploaded files:
81
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
82
+ # def filename
83
+ # "something.jpg" if original_filename
84
+ # end
85
+
86
+ end
@@ -0,0 +1,4 @@
1
+ module BlobsterixCarrierwave
2
+ VERSION = "0.0.7"
3
+ end
4
+
@@ -0,0 +1,22 @@
1
+ require "blobsterix_carrierwave/version"
2
+
3
+ require "carrierwave"
4
+ require "fog"
5
+
6
+ require "blobsterix_carrierwave/blobsterix_carrierwave"
7
+ require "blobsterix_carrierwave/blobsterix_storage"
8
+ require "blobsterix_carrierwave/blobsterix_transforms"
9
+ require "blobsterix_carrierwave/blobsterix_adhoc_transforms"
10
+ require "blobsterix_carrierwave/blobsterix_uploader"
11
+
12
+ module BlobsterixCarrierwave
13
+ # Your code goes here...
14
+ def self.encrypt_trafo(trafo_string=nil, generator=nil)
15
+ @encrypt_trafo||=lambda{|t_string, generator| t_string}
16
+ trafo_string ? @encrypt_trafo.call(trafo_string, generator) : @encrypt_trafo
17
+ end
18
+
19
+ def self.encrypt_trafo=(obj)
20
+ @encrypt_trafo=obj
21
+ end
22
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blobsterix_carrierwave
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Sudmann
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: carrierwave
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.9.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: fog
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.3.1
41
+ description: This gem is used to create a carrierwave binding to a blobsterix server
42
+ email:
43
+ - suddani@googlemail.com
44
+ executables:
45
+ - blobsterix_uploader
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - .gitignore
50
+ - CHANGELOG.txt
51
+ - Gemfile
52
+ - LICENSE
53
+ - README.md
54
+ - Rakefile
55
+ - bin/blobsterix_uploader
56
+ - blobsterix_carrierwave.gemspec
57
+ - config/uploader_template.rb
58
+ - lib/blobsterix_carrierwave.rb
59
+ - lib/blobsterix_carrierwave/blobsterix_adhoc_transforms.rb
60
+ - lib/blobsterix_carrierwave/blobsterix_carrierwave.rb
61
+ - lib/blobsterix_carrierwave/blobsterix_storage.rb
62
+ - lib/blobsterix_carrierwave/blobsterix_transforms.rb
63
+ - lib/blobsterix_carrierwave/blobsterix_uploader.rb
64
+ - lib/blobsterix_carrierwave/version.rb
65
+ homepage: http://experteer.com
66
+ licenses: []
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 2.0.14
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: This gem is used to create a carrierwave binding to a blobsterix server
88
+ test_files: []
89
+ has_rdoc: