Class: Uploadcare::Rails::Operations

Inherits:
Object
  • Object
show all
Defined in:
lib/uploadcare/rails/operations.rb

Instance Method Summary collapse

Constructor Details

#initialize(operations = nil) ⇒ Operations

Returns a new instance of Operations.



4
5
6
# File 'lib/uploadcare/rails/operations.rb', line 4

def initialize(operations = nil)
  @operations = operations
end

Instance Method Details

#format(options) ⇒ Object



22
23
24
25
# File 'lib/uploadcare/rails/operations.rb', line 22

def format(options)
  return unless %w(png jpeg).include?(options.to_s)
  "format/#{ options }"
end

#inline(options) ⇒ Object



52
53
54
# File 'lib/uploadcare/rails/operations.rb', line 52

def inline(options)
  options
end

#preview(options) ⇒ Object



38
39
40
41
42
# File 'lib/uploadcare/rails/operations.rb', line 38

def preview(options)
  if option = options[/^\d+x\d+$/]
    "preview/#{ option }"
  end
end

#progressive(options) ⇒ Object



27
28
29
30
# File 'lib/uploadcare/rails/operations.rb', line 27

def progressive(options)
  return unless %w(yes no).include?(options.to_s)
  "progressive/#{ options }"
end

#quality(options) ⇒ Object



32
33
34
35
36
# File 'lib/uploadcare/rails/operations.rb', line 32

def quality(options)
  available_options = %w(normal better best lighter lightest)
  return unless available_options.include?(options.to_s)
  "quality/#{ options }"
end

#resize(options) ⇒ Object Also known as: size



44
45
46
47
48
# File 'lib/uploadcare/rails/operations.rb', line 44

def resize(options)
  if option = options[/^(\d+x\d+)$|^(\d+x)$|^(x\d+)$/]
    "resize/#{ option }"
  end
end

#to_sObject



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/uploadcare/rails/operations.rb', line 8

def to_s
  return '' unless @operations

  result = @operations.map do |operation, options|
    next unless respond_to?(operation)
    send(operation, options)
  end

  ['-/', result.join('/-/'), '/'].
    join.
    gsub(%r{\/+}, '/').
    to_s
end