Module: StwEngine

Extended by:
StwEngine
Included in:
StwEngine
Defined in:
lib/stw_engine.rb,
lib/stw_engine/config.rb,
lib/stw_engine/engine.rb,
lib/stw_engine/version.rb,
lib/stw_engine/helpers/common.rb

Defined Under Namespace

Modules: Helpers Classes: Engine

Constant Summary collapse

MODES =

modes

%w{production placehold dummy}
IMAGE_URL =
'http://images.shrinktheweb.com/xino.php?'
ACCOUNT_URL =
'http://images.shrinktheweb.com/account.php?'
VERSION =
"0.0.2"

Instance Method Summary collapse

Instance Method Details

#account_urlObject



65
66
67
# File 'lib/stw_engine/config.rb', line 65

def 
  @account_url = ACCOUNT_URL
end

#account_url=(account_url) ⇒ Object



69
70
71
# File 'lib/stw_engine/config.rb', line 69

def 
  @account_url = ACCOUNT_URL
end

#api_keyObject



24
25
26
27
# File 'lib/stw_engine/config.rb', line 24

def api_key
  raise 'StwEngine error: No api_key defined!' if @api_key.nil?
  @api_key
end

#api_key=(api_key) ⇒ Object



20
21
22
# File 'lib/stw_engine/config.rb', line 20

def api_key=api_key
  @api_key=api_key
end

#api_secretObject



33
34
35
36
# File 'lib/stw_engine/config.rb', line 33

def api_secret
  raise 'StwEngine error: No api secret defined!' if @api_secret.nil?
  @api_secret
end

#api_secret=(api_secret) ⇒ Object



29
30
31
# File 'lib/stw_engine/config.rb', line 29

def api_secret=api_secret
  @api_secret = api_secret
end

#api_versionObject



51
52
53
# File 'lib/stw_engine/config.rb', line 51

def api_version
  @api_version || 'v6' #default: v6
end

#api_version=(api_version) ⇒ Object



47
48
49
# File 'lib/stw_engine/config.rb', line 47

def api_version=api_version
  @api_version = api_version || 'v6' # set default to latest open version
end

#config(c = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/stw_engine/config.rb', line 9

def config c = {}
  # mandatory
  self.api_key = c[:api_key]
  self.api_secret = c[:api_secret]

  # optional
  self.mode = c[:mode] if c[:mode]
  self.api_version = c[:api_version] if c[:api_version]
  self.api_url = c[:api_url] if c[:api_url]
end

#default_sizeObject



79
80
81
# File 'lib/stw_engine/config.rb', line 79

def default_size
  @default_size || "400x400"
end

#default_size=(default_size) ⇒ Object



75
76
77
# File 'lib/stw_engine/config.rb', line 75

def default_size=default_size
  @default_size = default_size || "400x400"
end

#image_urlObject



59
60
61
62
63
# File 'lib/stw_engine/config.rb', line 59

def image_url
  # reference => http://url2png.com/docs/
  # currently all versions suggest 'beta'
  @image_url || IMAGE_URL
end

#image_url=(image_url) ⇒ Object



55
56
57
# File 'lib/stw_engine/config.rb', line 55

def image_url=image_url
  @image_url = image_url || IMAGE_URL
end

#modeObject



43
44
45
# File 'lib/stw_engine/config.rb', line 43

def mode
  @mode ||= 'production' # default: production
end

#mode=(mode) ⇒ Object



38
39
40
41
# File 'lib/stw_engine/config.rb', line 38

def mode=mode
  raise "StwEngine error: Invalid mode, only #{ MODES.join(', ') } are allowed" unless MODES.include?(mode.to_s)
  @mode = mode.to_s
end

#token(param) ⇒ Object



83
84
85
86
87
88
89
90
# File 'lib/stw_engine/config.rb', line 83

def token param
  case self.api_version
  when 'v6'
    Digest::MD5.hexdigest("#{param}#{self.private_key}")
  when 'v4', 'v3'
    Digest::MD5.hexdigest("#{self.private_key}+#{param}")
  end
end