fson 1.0.0 → 1.0.1

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: 15d93512d2c5ad431642446ccb1a97a58c826a6e
4
- data.tar.gz: 668890d610dd29e9198abf1a08ad4029c8f4ede9
3
+ metadata.gz: 8d2d19678ac598f39689752c42b982868685c14f
4
+ data.tar.gz: 54fa40b6f3b2a0035110db8edf8445acacd88cc5
5
5
  SHA512:
6
- metadata.gz: e0d1921160f240aabeb0de4384012872bc2d13c413988307723a76d63367f5a59e23870ea9d62b3621497f9c5e18c54cf5eb835b43f2783264fb0eec83dd77bf
7
- data.tar.gz: de5a76ed2782982be1d7b3795ff0acf8bbebc32c9c5db83a6c4d0481c202358496a198aa5bb6aac02daa0e1678424fdc70e4897b8b894f1650c2c8b3464835a6
6
+ metadata.gz: c2caaa093fda9daca708bc686f93dd235372045d207f33b9a2e98cb09bbf65f5123f2a1d351abcc82e56f7601582d745c3f7d552160be4e78401c26f5604dea6
7
+ data.tar.gz: d6215729469c56bc44ade62961d786c25a7fc91d6f4fbcefa874198e935f9c56bd0fcf81a79dc3049a37cf53829bd9faceeab646318d66486e149b0322c1d612
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- gem 'oj', '~> 2.12.10'
4
+ gem 'oj', '~> 2.12'
5
5
 
6
6
  group :test do
7
7
  gem 'codeclimate-test-reporter', require: nil
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fson (1.0.0)
4
+ fson (1.0.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -11,7 +11,7 @@ GEM
11
11
  diff-lcs (1.2.5)
12
12
  docile (1.1.5)
13
13
  json (1.8.3)
14
- oj (2.12.11)
14
+ oj (2.12.12)
15
15
  rake (10.4.2)
16
16
  rspec (3.3.0)
17
17
  rspec-core (~> 3.3.0)
@@ -38,6 +38,6 @@ PLATFORMS
38
38
  DEPENDENCIES
39
39
  codeclimate-test-reporter
40
40
  fson!
41
- oj (~> 2.12.10)
41
+ oj (~> 2.12)
42
42
  rake (~> 10.4)
43
43
  rspec (~> 3.3)
data/lib/fson/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fson
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Fson::Response do
4
+
5
+ context 'when adding response errors' do
6
+
7
+ it 'should add error messages' do
8
+ # given
9
+ error_1 = 'error message 1'
10
+ error_2 = 'error message 2'
11
+
12
+ # when
13
+ response = Fson::Response.error.add_error(error_1).add_error(error_2)
14
+
15
+ # then
16
+ expect(response.instance_eval { _errors }).to contain_exactly({:message => error_1}, {:message => error_2})
17
+ end
18
+
19
+ it 'should add error message and add error attributes' do
20
+ # given
21
+ error = 'error message'
22
+ code = 401
23
+
24
+ # when
25
+ response = Fson::Response.error.add_error(error) {|e| e[:code] = code}
26
+
27
+ # then
28
+ expect(response.instance_eval { _errors }).to contain_exactly({:message => error, :code => code})
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Fson::Response do
4
+
5
+ context 'when adding array data' do
6
+
7
+ it 'should add given array data' do
8
+ # given
9
+ data = [{:id => 1}]
10
+
11
+ # when
12
+ response = Fson::Response.success.data_array(data)
13
+
14
+ # then
15
+ expect(response.instance_eval {_data}).to eq(data)
16
+ end
17
+
18
+ it 'should add given array data and modify data in block' do
19
+ # given
20
+ entry_1 = {:id => 1}
21
+ entry_2 = {:id => 2}
22
+
23
+ # when
24
+ response = Fson::Response.success.data_array([entry_1]) { |data|
25
+ data << entry_2
26
+ }
27
+
28
+ # then
29
+ expect(response.instance_eval {_data}).to eq([entry_1, entry_2])
30
+ end
31
+
32
+ it 'should raise an error if given data is not array' do
33
+ # given
34
+ data = {:id => 1}
35
+
36
+ # expect
37
+ expect {
38
+
39
+ # when
40
+ Fson::Response.success.data_array(data)
41
+
42
+ # then
43
+ }.to raise_error(RuntimeError, 'Invalid Argument Error')
44
+ end
45
+
46
+ it 'should raise an error if adding array data to response with hash data' do
47
+ # expect
48
+ expect {
49
+
50
+ # when
51
+ Fson::Response.success.data_hash({}).data_array([])
52
+
53
+ # then
54
+ }.to raise_error(RuntimeError, 'Invalid State Error: response data already initialized as a Hash')
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Fson::Response do
4
+
5
+ context 'when adding hash data' do
6
+
7
+ it 'should add given hash data' do
8
+ # given
9
+ data = {:id => 1}
10
+
11
+ # when
12
+ response = Fson::Response.success.data_hash(data)
13
+
14
+ # then
15
+ expect(response.instance_eval {_data}).to eq(data)
16
+ end
17
+
18
+ it 'should add given hash data and modify data in block' do
19
+ # given
20
+ data = {:id => 1}
21
+ code = 200
22
+
23
+ # when
24
+ response = Fson::Response.success.data_hash(data) { |data|
25
+ data[:code] = code
26
+ }
27
+
28
+ # then
29
+ expect(response.instance_eval {_data}).to eq({:id => 1, :code => code})
30
+ end
31
+
32
+ it 'should raise an error if given data is not hash' do
33
+ # given
34
+ data = [1]
35
+
36
+ # expect
37
+ expect {
38
+
39
+ # when
40
+ Fson::Response.success.data_hash(data)
41
+
42
+ # then
43
+ }.to raise_error(RuntimeError, 'Invalid Argument Error')
44
+ end
45
+
46
+ it 'should raise an error if adding hash data to response with array data' do
47
+ # expect
48
+ expect {
49
+
50
+ # when
51
+ Fson::Response.success.data_array([]).data_hash({})
52
+
53
+ # then
54
+ }.to raise_error(RuntimeError, 'Invalid State Error: response data already initialized as an Array')
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Fson::Response do
4
+
5
+ context 'when setting response status' do
6
+
7
+ it 'should set error status' do
8
+ # when
9
+ response = Fson::Response.new.error
10
+
11
+ # then
12
+ expect(response.instance_eval {@_response[:status]}).to eq(:error)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Fson::Response do
4
+
5
+ context 'when setting response status' do
6
+
7
+ it 'should set fail status' do
8
+ # when
9
+ response = Fson::Response.new.fail
10
+
11
+ # then
12
+ expect(response.instance_eval {@_response[:status]}).to eq(:fail)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Fson::Response do
4
+
5
+ context 'when setting response status' do
6
+
7
+ it 'should set status' do
8
+ # when
9
+ response = Fson::Response.new.status(:custom)
10
+
11
+ # then
12
+ expect(response.instance_eval {@_response[:status]}).to eq(:custom)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Fson::Response do
4
+
5
+ context 'when setting response status' do
6
+
7
+ it 'should set success status' do
8
+ # when
9
+ response = Fson::Response.error.success
10
+
11
+ # then
12
+ expect(response.instance_eval {@_response[:status]}).to eq(:success)
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fson
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mateusz Kluczny
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-03 00:00:00.000000000 Z
11
+ date: 2015-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -61,6 +61,13 @@ files:
61
61
  - lib/fson/version.rb
62
62
  - lib/generators/fson/install_generator.rb
63
63
  - lib/generators/fson/templates/initializer.rb
64
+ - spec/fson/builder/add_error_spec.rb
65
+ - spec/fson/builder/data_array_spec.rb
66
+ - spec/fson/builder/data_hash_spec.rb
67
+ - spec/fson/builder/error_spec.rb
68
+ - spec/fson/builder/fail_spec.rb
69
+ - spec/fson/builder/status_spec.rb
70
+ - spec/fson/builder/success_spec.rb
64
71
  - spec/fson/response/as_json_spec.rb
65
72
  - spec/fson/response/error_spec.rb
66
73
  - spec/fson/response/fail_spec.rb
@@ -92,6 +99,13 @@ signing_key:
92
99
  specification_version: 4
93
100
  summary: Fluent builder for API JSON responses
94
101
  test_files:
102
+ - spec/fson/builder/add_error_spec.rb
103
+ - spec/fson/builder/data_array_spec.rb
104
+ - spec/fson/builder/data_hash_spec.rb
105
+ - spec/fson/builder/error_spec.rb
106
+ - spec/fson/builder/fail_spec.rb
107
+ - spec/fson/builder/status_spec.rb
108
+ - spec/fson/builder/success_spec.rb
95
109
  - spec/fson/response/as_json_spec.rb
96
110
  - spec/fson/response/error_spec.rb
97
111
  - spec/fson/response/fail_spec.rb