jsend_wrapper-rails 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 595e037630a2625db30b88eef87c2527cc2c568b
4
- data.tar.gz: 24c5581c69fa89beef3934d8e9ccf6db67da1d80
3
+ metadata.gz: eee04f91289f43f6ebf82e8b1ee53ec90e82ebec
4
+ data.tar.gz: 93be3df4245222a92426c33d595aa5f371b83ea6
5
5
  SHA512:
6
- metadata.gz: e3cd16e861c3d4b986542ae5d9298f78305e043da48134e98ce1a4e926ee9dfa1ad8cf557b71872a4eadcdab34b190e74f09b42e1b56b0a218481480ffb37b57
7
- data.tar.gz: ff339af35ec687208ccda0e01be7c1657ffccd23eded174eb2624e3a129037d1ef9e8d310fa62504270b9172e1a6784a1e7b4b9cd44cdc02f4daabb0c1ca4765
6
+ metadata.gz: be9ce6da5c187e1c7ad1b87cd2c869acf5eaeaf33e8f54d9305bd111df4bec7b4b2b5e09e51de4049736c57a08f348006cc0ec7f093ccd16a6edb82b19723817
7
+ data.tar.gz: 9f4ad8062573d02f7e28eabbc8963cd0167e71ee02e776f486325252f8cbf309795401dd0c6aee4db1834a90a7bff411d25100aeca0dfa6d217867b806add048
data/README.md CHANGED
@@ -32,7 +32,9 @@ The elements `code` and `data` are optional for JSend Error containers. If you
32
32
  leave them out, they will be absent from the rendered JSON. Note the differences
33
33
  in these two examples:
34
34
 
35
- `render jsend: {error: 'too bad'}`
35
+ ```ruby
36
+ render jsend: {error: 'too bad'}`
37
+ ```
36
38
 
37
39
  **Result**:
38
40
  ```json
@@ -42,7 +44,9 @@ in these two examples:
42
44
  }
43
45
  ```
44
46
 
45
- `render jsend: {error: 'too bad', data: nil}`
47
+ ```ruby
48
+ render jsend: {error: 'too bad', data: nil}`
49
+ ```
46
50
 
47
51
  **Result**:
48
52
  ```json
@@ -104,6 +108,33 @@ end
104
108
  }
105
109
  ```
106
110
 
111
+ #### Use Renderers directly
112
+
113
+ If you have some other purpose in mind, you can access the renderers directly:
114
+
115
+ ```ruby
116
+ require 'jsend_wrapper/renderers/success_renderer'
117
+ require 'jsend_wrapper/renderers/fail_renderer'
118
+ require 'jsend_wrapper/renderers/error_renderer'
119
+
120
+ # or, for all three:
121
+ require 'jsend_wrapper/renderers'
122
+ ```
123
+
124
+ ##### Usages
125
+
126
+ To use these renderers, construct them with the same arguments as you pass to
127
+ the `render` statements listed above.
128
+
129
+ ```ruby
130
+ renderer = JsendWrapper::SuccessRenderer @data
131
+ renderer = JsendWrapper::FailRenderer 'a message'
132
+ renderer = JsendWrapper::ErrorRenderer 'a message', code: 123, data: @data
133
+
134
+ json = renderer.to_s
135
+ hash = renderer.to_h
136
+ ```
137
+
107
138
  ## JSend Specification
108
139
 
109
140
  *This section is copied from [omniti.com](http://labs.omniti.com/labs/jsend)
@@ -38,7 +38,7 @@ module JsendWrapper
38
38
 
39
39
  #@return [String] A string containing the rendered JSON
40
40
  def render
41
- renderer.call
41
+ renderer.to_s
42
42
  end
43
43
 
44
44
 
@@ -29,7 +29,7 @@ module JsendWrapper
29
29
  #@option optional [#to_i] :code a numeric code representing the error
30
30
  #@option optional [Object] :data a generic container for any other
31
31
  # information about the error
32
- def initialize(message, optional)
32
+ def initialize(message, optional={})
33
33
  @message = message.to_s
34
34
  @has_code = optional.key? :code
35
35
  @has_data = optional.key? :data
@@ -40,10 +40,16 @@ module JsendWrapper
40
40
 
41
41
 
42
42
  #@return [String] the rendered JSON
43
- def call
43
+ def to_s
44
44
  %[{"status":"error","message":#{message.inspect}#{optional}}]
45
45
  end
46
46
 
47
+ def to_h
48
+ {status: 'error', message: message}.tap do |hash|
49
+ hash[:code] = code if code?
50
+ hash[:data] = data if data?
51
+ end
52
+ end
47
53
 
48
54
  private
49
55
 
@@ -25,8 +25,12 @@ module JsendWrapper
25
25
  @data = data
26
26
  end
27
27
 
28
- def call
28
+ def to_s
29
29
  %[{"status":"fail","data":#{json_string data}}]
30
30
  end
31
+
32
+ def to_h
33
+ { status: 'fail', data: data }
34
+ end
31
35
  end
32
36
  end
@@ -16,8 +16,8 @@
16
16
  require 'jsend_wrapper/renderers/renderer'
17
17
 
18
18
  module JsendWrapper
19
- # Wraps the given message in a JSend Success. JSend Successs have two required
20
- # elements (status, data).
19
+ # Wraps the given message in a JSend Success. JSend Successes have two
20
+ # required elements (status, data).
21
21
  class SuccessRenderer < Renderer
22
22
  attr_reader :data
23
23
 
@@ -25,8 +25,12 @@ module JsendWrapper
25
25
  @data = data
26
26
  end
27
27
 
28
- def call
28
+ def to_s
29
29
  %[{"status":"success","data":#{json_string data}}]
30
30
  end
31
+
32
+ def to_h
33
+ { status: 'success', data: data }
34
+ end
31
35
  end
32
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsend_wrapper-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Sangster
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-22 00:00:00.000000000 Z
11
+ date: 2014-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry