upholsterer 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 101c0c9e901285c9521bc7b2a073d1c74dbb16f0
4
- data.tar.gz: 50346783ee4f0b56113d6b78bda0047f44f18433
3
+ metadata.gz: 82a5b679c3a25d0c7e689e13c81cd3694610d4d8
4
+ data.tar.gz: 5ede3e5c7b04cd34376d21becbe2de1326c57295
5
5
  SHA512:
6
- metadata.gz: ea9046f5a9977cccda59b29de1af0523a5e25823951dd9666e4bee990abb9cb61c4247af8746bedb7298e3672b5d62077e9172559ad86c8d440eac82a2aad0a0
7
- data.tar.gz: 7149150db503374b4a2a10def99d98a5d893b3eb1bf15d7ba2653d1849aaa7593eb44c80864b1d8a337c4bd42e2d541753b0d9809183e38ec62387d10c4e6e05
6
+ metadata.gz: 1c84077f3ad3c5c0694c485755b88007d8820d9ce35a34540c29f2d2499715c031ce6f605f2cce25d6642a54b995c77c030a6c4f07a264c2253dd088cc314aee
7
+ data.tar.gz: 3194d7453a8173575df38ff6e90c4f19e2f7b289d0d9d564f99dc8c1c861b290de394b6b392216f0a83e206a0410f971a1cdce40f2f148e52151c2bf0365b3c6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- upholsterer (0.4.4)
4
+ upholsterer (0.4.5)
5
5
  activesupport
6
6
 
7
7
  GEM
data/README.rdoc CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Based on SimplePresenter (https://github.com/fnando/simple_presenter)
4
4
 
5
+ {<img src="https://codeclimate.com/github/Archistart/upholsterer/badges/gpa.svg" />}[https://codeclimate.com/github/Archistart/upholsterer]
6
+ {<img src="https://hakiri.io/github/Archistart/upholsterer/master.svg" alt="security" />}[https://hakiri.io/github/Archistart/upholsterer/master]
7
+ {<img src="https://travis-ci.org/Archistart/upholsterer.svg" />}[https://travis-ci.org/Archistart/upholsterer]
8
+
5
9
  == Installation
6
10
 
7
11
  gem install upholsterer
@@ -1,17 +1,16 @@
1
+ require 'active_support/core_ext/module/delegation'
2
+
1
3
  module Upholsterer
2
4
  class Base
5
+ delegate :to_json, :as_json, to: :to_hash, prefix: false
6
+
3
7
  def to_hash
4
8
  Hash[json_fields.collect do |field|
5
9
  [field, public_send(field)]
6
10
  end]
7
11
  end
8
12
 
9
- def to_json(*args)
10
- to_hash
11
- end
12
-
13
13
  alias :to_h :to_hash
14
- alias :as_json :to_json
15
14
 
16
15
  private
17
16
 
@@ -2,7 +2,7 @@ module Upholsterer
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- PATCH = 4
5
+ PATCH = 5
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
data/spec/base_spec.rb CHANGED
@@ -183,7 +183,7 @@ describe Upholsterer::Base do
183
183
  let(:comment) { double body: 'Some comment', user: 'user' }
184
184
  subject { ExposeAllPresenter.new(comment).to_json }
185
185
 
186
- it { should eq '' }
186
+ it { should eq '{}' }
187
187
  end
188
188
 
189
189
  describe 'expose with block' do
@@ -198,7 +198,7 @@ describe Upholsterer::Base do
198
198
  its(:email) { should eq 'foo@bar.com' }
199
199
  its(:type) { should eq 'test_type' }
200
200
  its(:description) { should eq 'test_description' }
201
- its(:to_json) { should eq(name: 'Test', email: 'foo@bar.com', id: 1, description: 'test_description', type: 'test_type') }
201
+ its(:to_json) { should be_json_with(name: 'Test', email: 'foo@bar.com', id: 1, description: 'test_description', type: 'test_type') }
202
202
  end
203
203
 
204
204
  context 'Real presenter' do
@@ -208,7 +208,7 @@ describe Upholsterer::Base do
208
208
  its(:email) { should eq 'foo@bar.com' }
209
209
  its(:type) { should eq 'real_type' }
210
210
  its(:description) { should eq 'real_description' }
211
- its(:to_json) { should eq(name: 'Real', email: 'foo@bar.com', id: 1, description: 'real_description', type: 'real_type') }
211
+ its(:to_json) { should be_json_with(name: 'Real', email: 'foo@bar.com', id: 1, description: 'real_description', type: 'real_type') }
212
212
  end
213
213
  end
214
214
  end
@@ -0,0 +1,18 @@
1
+ RSpec::Matchers.define :be_json_with do |expected|
2
+ match do |json_string|
3
+ json_string == expected.to_json
4
+ end
5
+ end
6
+
7
+ RSpec::Matchers.define :contain_keys do |*expected|
8
+ match do |json_string|
9
+ begin
10
+ @actual = JSON.parse(json_string).keys
11
+ @expected = expected.first
12
+ @actual.sort == @expected.sort
13
+ rescue
14
+ @actual = []
15
+ false
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upholsterer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-15 00:00:00.000000000 Z
13
+ date: 2014-12-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -98,6 +98,7 @@ files:
98
98
  - spec/support/comment_presenter.rb
99
99
  - spec/support/expose_all_presenter.rb
100
100
  - spec/support/iterator_presenter.rb
101
+ - spec/support/matchers/json_matcher.rb
101
102
  - spec/support/user.rb
102
103
  - spec/support/user_presenter.rb
103
104
  - spec/upholsterer_spec.rb