Module: Jsender

Extended by:
Jsender
Included in:
Jsender
Defined in:
lib/jsender.rb,
lib/jsender/version.rb

Constant Summary collapse

VERSION =
"1.1.0"

Instance Method Summary collapse

Instance Method Details

#error(message = nil) ⇒ Object



13
14
15
# File 'lib/jsender.rb', line 13

def error(message = nil)
  report('error', message)
end

#error_json(msg, code = nil, data = nil) ⇒ String



74
75
76
77
78
79
80
81
# File 'lib/jsender.rb', line 74

def error_json(msg, code = nil, data = nil)
  code, data = validate_and_sanitize(msg, code, data)
  jsend = {
      :status => 'error',
      :message => msg
  }
  generate_error_json(jsend, code, data)
end

#fail_data(data = nil) ⇒ Object



22
23
24
# File 'lib/jsender.rb', line 22

def fail_data(data = nil)
  failure(nil, data)
end

#fail_json(data = nil) ⇒ String

Returns jsend json.

Raises:

  • (ArgumentError)


61
62
63
64
65
66
67
# File 'lib/jsender.rb', line 61

def fail_json(data = nil)
  raise ArgumentError, 'Optional data argument should be of type Hash' if invalid_hash?(data)
  return JSON.generate({
                           :status => 'fail',
                           :data => data
                       })
end

#failure(message = nil, data = nil) ⇒ Object



17
18
19
20
# File 'lib/jsender.rb', line 17

def failure(message = nil, data = nil)
  message ||= 'fail'
  report('fail', message, data)
end

#has_data?(result, key = nil) ⇒ Boolean



35
36
37
38
39
40
# File 'lib/jsender.rb', line 35

def has_data?(result, key = nil)
  return false if key.nil?
  return false if (result.nil?) or (result['data'].nil?)
  return false if (not key.nil?) and (result['data'][key].nil?)
  true
end

#notifications_include?(result, pattern) ⇒ Boolean



42
43
44
45
# File 'lib/jsender.rb', line 42

def notifications_include?(result, pattern)
  return false unless has_data?(result, 'notifications')
  result['data']['notifications'].to_s.include?(pattern)
end

#report(status, message, result = nil) ⇒ Object



6
7
8
9
10
11
# File 'lib/jsender.rb', line 6

def report(status, message, result = nil)
  return {'status' => 'error', 'message' => message} if status == 'error'
  data = compile_data(result)
  data['notifications'] = message.is_a?(Array) ? message : [message]
  {'status' => status, 'data' => data}
end

#success(message = nil, data = nil) ⇒ Object



30
31
32
33
# File 'lib/jsender.rb', line 30

def success(message = nil, data = nil)
  message ||= 'success'
  report('success', message, data)
end

#success_data(data = nil) ⇒ Object



26
27
28
# File 'lib/jsender.rb', line 26

def success_data(data = nil)
  success(nil, data)
end

#success_json(data = nil) ⇒ String

Returns jsend json.

Raises:

  • (ArgumentError)


50
51
52
53
54
55
56
# File 'lib/jsender.rb', line 50

def success_json(data = nil)
  raise ArgumentError, 'Optional data argument should be of type Hash' if invalid_hash?(data)
  return JSON.generate({
                           :status => 'success',
                           :data => data
                       })
end