Sha256: 1cc9c78b380fbf4d65b46bf6e1dee73e558d53959b10b787007cb234612dee02

Contents?: true

Size: 1.15 KB

Versions: 18

Compression:

Stored size: 1.15 KB

Contents

require 'httpimagestore/thumbnail_class'
require 'pathname'

class Configuration
	class ThumbnailClassDoesNotExistError < RuntimeError
		def initialize(name)
			super "Class '#{name}' does not exist"
		end
	end

	def initialize(&block)
		@thumbnail_classes = Hash.new do |h, k|
			raise ThumbnailClassDoesNotExistError, k
		end

		@thumbnailer_url = "http://localhost:3100"

		instance_eval &block
	end

	def self.from_file(file)
		file = Pathname.pwd + file
		Configuration.new do
			 eval(file.read, nil, file.to_s)
		end
	end

	def thumbnail_class(name, method, width, height, format = 'JPEG', options = {})
		@thumbnail_classes[name] = ThumbnailClass.new(name, method, width, height, format, options)
	end

	def s3_key(id, secret)
		@s3_key_id = id
		@s3_key_secret = secret
	end

	def s3_bucket(bucket)
		@s3_bucket = bucket
	end

	def thumbnailer_url(url)
		@thumbnailer_url = url
	end

	def get
		Struct.new(:thumbnail_classes, :s3_key_id, :s3_key_secret, :s3_bucket, :thumbnailer_url).new(@thumbnail_classes, @s3_key_id, @s3_key_secret, @s3_bucket, @thumbnailer_url)
	end

	def put(sinatra)
		get.each_pair do |key, value|
			sinatra.set key, value
		end
	end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
httpimagestore-0.5.0 lib/httpimagestore/configuration.rb
httpimagestore-0.4.0 lib/httpimagestore/configuration.rb
httpimagestore-0.3.2 lib/httpimagestore/configuration.rb
httpimagestore-0.3.1 lib/httpimagestore/configuration.rb
httpimagestore-0.3.0 lib/httpimagestore/configuration.rb
httpimagestore-0.2.4 lib/httpimagestore/configuration.rb
httpimagestore-0.2.3 lib/httpimagestore/configuration.rb
httpimagestore-0.2.2 lib/httpimagestore/configuration.rb
httpimagestore-0.2.1 lib/httpimagestore/configuration.rb
httpimagestore-0.2.0 lib/httpimagestore/configuration.rb
httpimagestore-0.1.1 lib/httpimagestore/configuration.rb
httpimagestore-0.1.0 lib/httpimagestore/configuration.rb
httpimagestore-0.0.10 lib/httpimagestore/configuration.rb
httpimagestore-0.0.9 lib/httpimagestore/configuration.rb
httpimagestore-0.0.8 lib/httpimagestore/configuration.rb
httpimagestore-0.0.7 lib/httpimagestore/configuration.rb
httpimagestore-0.0.6 lib/httpimagestore/configuration.rb
httpimagestore-0.0.5 lib/httpimagestore/configuration.rb