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.3"

Instance Method Summary collapse

Instance Method Details

#account_urlObject



72
73
74
# File 'lib/stw_engine/config.rb', line 72

def 
  @account_url = 
end

#account_url=(account_url) ⇒ Object



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

def 
  @account_url = 
end

#api_keyObject



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

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

#api_key=(api_key) ⇒ Object



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

def api_key=api_key
  @api_key=api_key
end

#api_secretObject



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

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

#api_secret=(api_secret) ⇒ Object



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

def api_secret=api_secret
  @api_secret = api_secret
end

#api_versionObject



58
59
60
# File 'lib/stw_engine/config.rb', line 58

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

#api_version=(api_version) ⇒ Object



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

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
# 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.size = c[:size] if c[:size]
  
end

#default_sizeObject



86
87
88
# File 'lib/stw_engine/config.rb', line 86

def default_size
  @default_size || "400x400"
end

#default_size=(default_size) ⇒ Object



82
83
84
# File 'lib/stw_engine/config.rb', line 82

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

#image_urlObject



66
67
68
69
70
# File 'lib/stw_engine/config.rb', line 66

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

#image_url=(image_url) ⇒ Object



62
63
64
# File 'lib/stw_engine/config.rb', line 62

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

#modeObject



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

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

#mode=(mode) ⇒ Object



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

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

#sizeObject



41
42
43
# File 'lib/stw_engine/config.rb', line 41

def size    
  @size
end

#size=(size) ⇒ Object



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

def size=size
  @size = size
end

#token(param) ⇒ Object



90
91
92
93
94
95
96
97
# File 'lib/stw_engine/config.rb', line 90

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