Class: Visibility

Inherits:
PrefixedExtension show all
Includes:
Logging
Defined in:
lib/flickrup/ext/visibility.rb

Instance Method Summary collapse

Methods included from Logging

logger, #logger, pre_init

Methods inherited from PrefixedExtension

#values

Constructor Details

#initialize(config, delegate, context) ⇒ Visibility

Returns a new instance of Visibility.



6
7
8
9
# File 'lib/flickrup/ext/visibility.rb', line 6

def initialize(config, delegate, context)
  super(config)
  @delegate = delegate
end

Instance Method Details

#config_for_visibility(visibility) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/flickrup/ext/visibility.rb', line 27

def config_for_visibility(visibility)
  if visibility == "offline"
    logger.debug("Offline Visibility specified. Disabling upload.")
    {UploaderConstants::NO_UPLOAD => true}
  elsif visibility == "private"
    logger.debug("Private visibility specified.")
    {"is_public" => "0", "is_friend" => "0", "is_family" => "0"}
  elsif visibility == "family"
    logger.debug("Family visibility specified.")
    {"is_public" => "0", "is_friend" => "0", "is_family" => "1"}
  elsif visibility == "friends"
    logger.debug("Friends visibility specified.")
    {"is_public" => "0", "is_friend" => "1", "is_family" => "1"}
  else
    logger.warn("Unknown visibility #{visibility}. Ignoring.")
    {}
  end
end

#upload(ctx) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/flickrup/ext/visibility.rb', line 11

def upload(ctx)
  visibility = values(:visibilityprefix, ctx)

  config_override = if visibility.length == 0
    logger.debug("No visibility specified for #{ctx.file.filename}.")
    {}
  elsif visibility.length == 1
    config_for_visibility(visibility[0])
  else #multiple visibilities
    logger.warn("Multiple visibilities specified. Using the first encountered: #{visibility[0]}.")
    config_for_visibility(visibility[0])
  end

  @delegate.upload(ctx.with_properties(config_override))
end