restpack_serializer 0.6.7 → 0.6.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/Gemfile +1 -0
- data/Rakefile +1 -0
- data/lib/restpack_serializer.rb +1 -1
- data/lib/restpack_serializer/serializable.rb +17 -5
- data/lib/restpack_serializer/serializable/side_loading.rb +5 -1
- data/lib/restpack_serializer/version.rb +1 -1
- data/performance/mem.rb +49 -0
- data/restpack_serializer.gemspec +8 -9
- data/spec/factory/factory_spec.rb +21 -14
- data/spec/fixtures/db.rb +0 -11
- data/spec/restpack_serializer_spec.rb +4 -4
- data/spec/result_spec.rb +16 -15
- data/spec/serializable/filterable_spec.rb +1 -1
- data/spec/serializable/options_spec.rb +40 -35
- data/spec/serializable/paging_spec.rb +88 -81
- data/spec/serializable/resource_spec.rb +11 -10
- data/spec/serializable/serializer_spec.rb +79 -41
- data/spec/serializable/side_loading/belongs_to_spec.rb +16 -13
- data/spec/serializable/side_loading/has_and_belongs_many_spec.rb +7 -7
- data/spec/serializable/side_loading/has_many_spec.rb +19 -20
- data/spec/serializable/side_loading/side_loading_spec.rb +21 -19
- data/spec/serializable/single_spec.rb +4 -4
- data/spec/serializable/sortable_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/support/factory.rb +20 -26
- metadata +31 -40
@@ -17,15 +17,15 @@ describe RestPack::Serializer::SideLoading do
|
|
17
17
|
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer) }
|
18
18
|
|
19
19
|
it "returns a hash with no data" do
|
20
|
-
side_loads.
|
20
|
+
expect(side_loads).to eq(meta: {})
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
context "when including :albums" do
|
25
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer,
|
25
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer, "include" => "albums") }
|
26
26
|
|
27
27
|
it "returns a hash with no data" do
|
28
|
-
side_loads.
|
28
|
+
expect(side_loads).to eq(meta: {})
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -34,13 +34,13 @@ describe RestPack::Serializer::SideLoading do
|
|
34
34
|
let(:models) { [MyApp::Song.first] }
|
35
35
|
|
36
36
|
context "when including :albums" do
|
37
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer,
|
37
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer, "include" => "albums") }
|
38
38
|
|
39
39
|
it "returns side-loaded albums" do
|
40
|
-
side_loads.
|
40
|
+
expect(side_loads).to eq(
|
41
41
|
albums: [MyApp::AlbumSerializer.as_json(MyApp::Song.first.album)],
|
42
|
-
meta: {
|
43
|
-
|
42
|
+
meta: {}
|
43
|
+
)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
@@ -53,16 +53,16 @@ describe RestPack::Serializer::SideLoading do
|
|
53
53
|
let(:models) { [song1, song2] }
|
54
54
|
|
55
55
|
context "when including :albums" do
|
56
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer,
|
56
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer, "include" => "albums") }
|
57
57
|
|
58
58
|
it "returns side-loaded albums" do
|
59
|
-
side_loads.
|
59
|
+
expect(side_loads).to eq(
|
60
60
|
albums: [
|
61
61
|
MyApp::AlbumSerializer.as_json(song1.album),
|
62
62
|
MyApp::AlbumSerializer.as_json(song2.album)
|
63
63
|
],
|
64
|
-
:
|
65
|
-
|
64
|
+
meta: {}
|
65
|
+
)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
@@ -72,10 +72,13 @@ describe RestPack::Serializer::SideLoading do
|
|
72
72
|
let(:models) { [b_side] }
|
73
73
|
|
74
74
|
context 'when including :albums' do
|
75
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer,
|
75
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::SongSerializer, "include" => "albums") }
|
76
76
|
|
77
77
|
it 'return a hash with no data' do
|
78
|
-
side_loads.
|
78
|
+
expect(side_loads).to eq(
|
79
|
+
albums: [],
|
80
|
+
meta: {}
|
81
|
+
)
|
79
82
|
end
|
80
83
|
end
|
81
84
|
end
|
@@ -15,13 +15,13 @@ describe RestPack::Serializer::SideLoading do
|
|
15
15
|
let(:models) { [@artist1] }
|
16
16
|
|
17
17
|
context "when including :albums" do
|
18
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer,
|
18
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer, "include" => "stalkers") }
|
19
19
|
let(:stalker_count) { @artist1.stalkers.count }
|
20
20
|
|
21
21
|
it "returns side-loaded albums" do
|
22
|
-
side_loads[:stalkers].count.
|
23
|
-
side_loads[:meta][:stalkers][:page].
|
24
|
-
side_loads[:meta][:stalkers][:count].
|
22
|
+
expect(side_loads[:stalkers].count).to eq(stalker_count)
|
23
|
+
expect(side_loads[:meta][:stalkers][:page]).to eq(1)
|
24
|
+
expect(side_loads[:meta][:stalkers][:count]).to eq(stalker_count)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -30,12 +30,12 @@ describe RestPack::Serializer::SideLoading do
|
|
30
30
|
let(:models) { [@artist1, @artist2] }
|
31
31
|
|
32
32
|
context "when including :albums" do
|
33
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer,
|
33
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer, "include" => "stalkers") }
|
34
34
|
let(:stalker_count) { @artist1.stalkers.count + @artist2.stalkers.count }
|
35
35
|
|
36
36
|
it "returns side-loaded albums" do
|
37
|
-
side_loads[:stalkers].count.
|
38
|
-
side_loads[:meta][:stalkers][:count].
|
37
|
+
expect(side_loads[:stalkers].count).to eq(stalker_count)
|
38
|
+
expect(side_loads[:meta][:stalkers][:count]).to eq(stalker_count)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -15,12 +15,12 @@ describe RestPack::Serializer::SideLoading do
|
|
15
15
|
let(:models) { [@artist1] }
|
16
16
|
|
17
17
|
context "when including :albums" do
|
18
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer,
|
18
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer, "include" => "albums") }
|
19
19
|
|
20
20
|
it "returns side-loaded albums" do
|
21
|
-
side_loads[:albums].count.
|
22
|
-
side_loads[:meta][:albums][:page].
|
23
|
-
side_loads[:meta][:albums][:count].
|
21
|
+
expect(side_loads[:albums].count).to eq(@artist1.albums.count)
|
22
|
+
expect(side_loads[:meta][:albums][:page]).to eq(1)
|
23
|
+
expect(side_loads[:meta][:albums][:count]).to eq(@artist1.albums.count)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -29,12 +29,12 @@ describe RestPack::Serializer::SideLoading do
|
|
29
29
|
let(:models) { [@artist1, @artist2] }
|
30
30
|
|
31
31
|
context "when including :albums" do
|
32
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer,
|
32
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer, "include" => "albums") }
|
33
33
|
|
34
34
|
it "returns side-loaded albums" do
|
35
35
|
expected_count = @artist1.albums.count + @artist2.albums.count
|
36
|
-
side_loads[:albums].count.
|
37
|
-
side_loads[:meta][:albums][:count].
|
36
|
+
expect(side_loads[:albums].count).to eq(expected_count)
|
37
|
+
expect(side_loads[:meta][:albums][:count]).to eq(expected_count)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -42,28 +42,27 @@ describe RestPack::Serializer::SideLoading do
|
|
42
42
|
|
43
43
|
describe '.has_many through' do
|
44
44
|
context 'when including :fans' do
|
45
|
-
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer,
|
46
|
-
let(:artist_1) {FactoryGirl.create :artist_with_fans}
|
47
|
-
let(:artist_2) {FactoryGirl.create :artist_with_fans}
|
45
|
+
let(:options) { RestPack::Serializer::Options.new(MyApp::ArtistSerializer, "include" => "fans") }
|
46
|
+
let(:artist_1) { FactoryGirl.create :artist_with_fans }
|
47
|
+
let(:artist_2) { FactoryGirl.create :artist_with_fans }
|
48
48
|
|
49
49
|
context "with a single model" do
|
50
|
-
let(:models) {[artist_1]}
|
50
|
+
let(:models) { [artist_1] }
|
51
51
|
|
52
52
|
it 'returns side-loaded fans' do
|
53
|
-
side_loads[:fans].count.
|
54
|
-
side_loads[:meta][:fans][:page].
|
55
|
-
side_loads[:meta][:fans][:count].
|
53
|
+
expect(side_loads[:fans].count).to eq(artist_1.fans.count)
|
54
|
+
expect(side_loads[:meta][:fans][:page]).to eq(1)
|
55
|
+
expect(side_loads[:meta][:fans][:count]).to eq(artist_1.fans.count)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
context "with a multiple models" do
|
59
|
-
let(:models) {[artist_1, artist_2]}
|
59
|
+
let(:models) { [artist_1, artist_2] }
|
60
60
|
|
61
61
|
it 'returns side-loaded fans' do
|
62
|
-
expected_count = artist_1.fans.count
|
63
|
-
|
64
|
-
side_loads[:fans].
|
65
|
-
side_loads[:meta][:fans][:
|
66
|
-
side_loads[:meta][:fans][:count].should == expected_count
|
62
|
+
expected_count = artist_1.fans.count + artist_2.fans.count
|
63
|
+
expect(side_loads[:fans].count).to eq(expected_count)
|
64
|
+
expect(side_loads[:meta][:fans][:page]).to eq(1)
|
65
|
+
expect(side_loads[:meta][:fans][:count]).to eq(expected_count)
|
67
66
|
end
|
68
67
|
|
69
68
|
context "when there are shared fans" do
|
@@ -12,7 +12,7 @@ describe RestPack::Serializer::SideLoading do
|
|
12
12
|
message = ":wrong is not a valid include for MyApp::Song"
|
13
13
|
|
14
14
|
expect do
|
15
|
-
MyApp::SongSerializer.side_loads([MyApp::Song.first], RestPack::Serializer::Options.new(MyApp::SongSerializer,
|
15
|
+
MyApp::SongSerializer.side_loads([MyApp::Song.first], RestPack::Serializer::Options.new(MyApp::SongSerializer, "include" => "wrong"))
|
16
16
|
end.to raise_error(exception, message)
|
17
17
|
end
|
18
18
|
end
|
@@ -24,7 +24,7 @@ describe RestPack::Serializer::SideLoading do
|
|
24
24
|
message = ":payments is not a valid include for MyApp::Artist"
|
25
25
|
|
26
26
|
expect do
|
27
|
-
MyApp::ArtistSerializer.side_loads([payment.artist], RestPack::Serializer::Options.new(MyApp::ArtistSerializer,
|
27
|
+
MyApp::ArtistSerializer.side_loads([payment.artist], RestPack::Serializer::Options.new(MyApp::ArtistSerializer, "include" => "payments"))
|
28
28
|
end.to raise_error(exception, message)
|
29
29
|
end
|
30
30
|
end
|
@@ -36,7 +36,7 @@ describe RestPack::Serializer::SideLoading do
|
|
36
36
|
attributes :a, :b, :c
|
37
37
|
end
|
38
38
|
it "defaults to empty array" do
|
39
|
-
CustomSerializer.can_includes.
|
39
|
+
expect(CustomSerializer.can_includes).to eq([])
|
40
40
|
end
|
41
41
|
|
42
42
|
it "allows includes to be specified" do
|
@@ -45,33 +45,35 @@ describe RestPack::Serializer::SideLoading do
|
|
45
45
|
can_include :model2, :model3
|
46
46
|
end
|
47
47
|
|
48
|
-
CustomSerializer.can_includes.
|
48
|
+
expect(CustomSerializer.can_includes).to eq([:model1, :model2, :model3])
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
describe "#links" do
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
53
|
+
it do
|
54
|
+
expect(MyApp::AlbumSerializer.links).to eq(
|
55
|
+
"albums.artist" => {
|
56
|
+
href: "/artists/{albums.artist}",
|
57
|
+
type: :artists
|
58
|
+
},
|
59
|
+
"albums.songs" => {
|
60
|
+
href: "/songs?album_id={albums.id}",
|
61
|
+
type: :songs
|
62
|
+
}
|
63
|
+
)
|
64
|
+
end
|
63
65
|
|
64
66
|
it "applies custom RestPack::Serializer.config.href_prefix" do
|
65
67
|
original = RestPack::Serializer.config.href_prefix
|
66
68
|
RestPack::Serializer.config.href_prefix = "/api/v1"
|
67
|
-
MyApp::AlbumSerializer.links["albums.artist"][:href].
|
69
|
+
expect(MyApp::AlbumSerializer.links["albums.artist"][:href]).to eq("/api/v1/artists/{albums.artist}")
|
68
70
|
RestPack::Serializer.config.href_prefix = original
|
69
71
|
end
|
70
72
|
|
71
73
|
it "applies custom serializer href_prefix" do
|
72
74
|
original = RestPack::Serializer.config.href_prefix
|
73
75
|
MyApp::AlbumSerializer.href_prefix = '/api/v2'
|
74
|
-
MyApp::AlbumSerializer.links["albums.artist"][:href].
|
76
|
+
expect(MyApp::AlbumSerializer.links["albums.artist"][:href]).to eq("/api/v2/artists/{albums.artist}")
|
75
77
|
MyApp::AlbumSerializer.href_prefix = original
|
76
78
|
end
|
77
79
|
end
|
@@ -79,17 +81,17 @@ describe RestPack::Serializer::SideLoading do
|
|
79
81
|
describe "#filterable_by" do
|
80
82
|
context "a model with no :belongs_to relations" do
|
81
83
|
it "is filterable by :id only" do
|
82
|
-
MyApp::ArtistSerializer.filterable_by.
|
84
|
+
expect(MyApp::ArtistSerializer.filterable_by).to eq([:id])
|
83
85
|
end
|
84
86
|
end
|
85
87
|
context "a model with a single :belongs_to relations" do
|
86
88
|
it "is filterable by primary key and foreign keys" do
|
87
|
-
MyApp::AlbumSerializer.filterable_by.
|
89
|
+
expect(MyApp::AlbumSerializer.filterable_by).to eq([:id, :artist_id, :year])
|
88
90
|
end
|
89
91
|
end
|
90
92
|
context "a model with multiple :belongs_to relations" do
|
91
93
|
it "is filterable by primary key and foreign keys" do
|
92
|
-
MyApp::SongSerializer.filterable_by.
|
94
|
+
expect(MyApp::SongSerializer.filterable_by).to eq([:id, :artist_id, :album_id, :title])
|
93
95
|
end
|
94
96
|
end
|
95
97
|
end
|
@@ -12,15 +12,15 @@ describe RestPack::Serializer::Single do
|
|
12
12
|
let(:context) { { } }
|
13
13
|
|
14
14
|
it "returns a resource by id" do
|
15
|
-
resource[:id].
|
16
|
-
resource[:title].
|
15
|
+
expect(resource[:id]).to eq(@song.id.to_s)
|
16
|
+
expect(resource[:title]).to eq(@song.title)
|
17
17
|
end
|
18
18
|
|
19
19
|
context "with context" do
|
20
20
|
let(:context) { { reverse_title?: true } }
|
21
21
|
|
22
22
|
it "returns reversed titles" do
|
23
|
-
resource[:title].
|
23
|
+
expect(resource[:title]).to eq(@song.title.reverse)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -28,7 +28,7 @@ describe RestPack::Serializer::Single do
|
|
28
28
|
let(:params) { { id: @song.id + 100 } }
|
29
29
|
|
30
30
|
it "returns nil" do
|
31
|
-
resource.
|
31
|
+
expect(resource).to eq(nil)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/factory.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
require 'factory_girl'
|
2
2
|
|
3
3
|
FactoryGirl.define do
|
4
|
-
factory :artist, :
|
5
|
-
sequence(:name) {|n| "Artist ##{n}" }
|
6
|
-
sequence(:website) {|n| "http://website#{n}.com/" }
|
4
|
+
factory :artist, class: MyApp::Artist do
|
5
|
+
sequence(:name) { |n| "Artist ##{n}" }
|
6
|
+
sequence(:website) { |n| "http://website#{n}.com/" }
|
7
7
|
|
8
8
|
factory :artist_with_albums do
|
9
|
-
|
10
|
-
album_count 3
|
11
|
-
end
|
9
|
+
transient { album_count 3 }
|
12
10
|
|
13
11
|
after(:create) do |artist, evaluator|
|
14
12
|
create_list(:album_with_songs, evaluator.album_count, artist: artist)
|
@@ -16,33 +14,29 @@ FactoryGirl.define do
|
|
16
14
|
end
|
17
15
|
|
18
16
|
factory :artist_with_fans do
|
19
|
-
|
20
|
-
|
21
|
-
end
|
17
|
+
transient { fans_count 3 }
|
18
|
+
|
22
19
|
after(:create) do |artist, evaluator|
|
23
20
|
create_list(:payment, evaluator.fans_count, artist: artist)
|
24
21
|
end
|
25
22
|
end
|
26
23
|
|
27
24
|
factory :artist_with_stalkers do
|
28
|
-
|
29
|
-
|
30
|
-
end
|
25
|
+
transient { stalker_count 2 }
|
26
|
+
|
31
27
|
after(:create) do |artist, evaluator|
|
32
|
-
create_list(:stalker, evaluator.stalker_count, artists: [
|
28
|
+
create_list(:stalker, evaluator.stalker_count, artists: [artist])
|
33
29
|
end
|
34
30
|
end
|
35
31
|
end
|
36
32
|
|
37
|
-
factory :album, :
|
38
|
-
sequence(:title) {|n| "Album ##{n}" }
|
39
|
-
sequence(:year) {|n| 1960 + n }
|
33
|
+
factory :album, class: MyApp::Album do
|
34
|
+
sequence(:title) { |n| "Album ##{n}" }
|
35
|
+
sequence(:year) { |n| 1960 + n }
|
40
36
|
artist
|
41
37
|
|
42
38
|
factory :album_with_songs do
|
43
|
-
|
44
|
-
song_count 10
|
45
|
-
end
|
39
|
+
transient { song_count 10 }
|
46
40
|
|
47
41
|
after(:create) do |album, evaluator|
|
48
42
|
create_list(:song, evaluator.song_count, album: album, artist: album.artist)
|
@@ -50,23 +44,23 @@ FactoryGirl.define do
|
|
50
44
|
end
|
51
45
|
end
|
52
46
|
|
53
|
-
factory :song, :
|
54
|
-
sequence(:title) {|n| "Song ##{n}" }
|
47
|
+
factory :song, class: MyApp::Song do
|
48
|
+
sequence(:title) { |n| "Song ##{n}" }
|
55
49
|
artist
|
56
50
|
album
|
57
51
|
end
|
58
52
|
|
59
|
-
factory :payment, :
|
53
|
+
factory :payment, class: MyApp::Payment do
|
60
54
|
amount 999
|
61
55
|
artist
|
62
56
|
fan
|
63
57
|
end
|
64
58
|
|
65
|
-
factory :fan, :
|
66
|
-
sequence(:name) {|n| "Fan ##{n}"}
|
59
|
+
factory :fan, class: MyApp::Fan do
|
60
|
+
sequence(:name) { |n| "Fan ##{n}" }
|
67
61
|
end
|
68
62
|
|
69
|
-
factory :stalker, :
|
70
|
-
sequence(:name) {|n| "Stalker ##{n}"}
|
63
|
+
factory :stalker, class: MyApp::Stalker do
|
64
|
+
sequence(:name) { |n| "Stalker ##{n}" }
|
71
65
|
end
|
72
66
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restpack_serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Joyce
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: 4.0.3
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '6.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: 4.0.3
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '6.1'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: activerecord
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: 4.0.3
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '6.1'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,21 +49,27 @@ dependencies:
|
|
49
49
|
version: 4.0.3
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
52
|
+
version: '6.1'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: kaminari
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - "
|
57
|
+
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.
|
59
|
+
version: 0.17.0
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '2.0'
|
60
63
|
type: :runtime
|
61
64
|
prerelease: false
|
62
65
|
version_requirements: !ruby/object:Gem::Requirement
|
63
66
|
requirements:
|
64
|
-
- - "
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.17.0
|
70
|
+
- - "<"
|
65
71
|
- !ruby/object:Gem::Version
|
66
|
-
version: 0
|
72
|
+
version: '2.0'
|
67
73
|
- !ruby/object:Gem::Dependency
|
68
74
|
name: restpack_gem
|
69
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,70 +90,70 @@ dependencies:
|
|
84
90
|
requirements:
|
85
91
|
- - "~>"
|
86
92
|
- !ruby/object:Gem::Version
|
87
|
-
version: 11.
|
93
|
+
version: '11.3'
|
88
94
|
type: :development
|
89
95
|
prerelease: false
|
90
96
|
version_requirements: !ruby/object:Gem::Requirement
|
91
97
|
requirements:
|
92
98
|
- - "~>"
|
93
99
|
- !ruby/object:Gem::Version
|
94
|
-
version: 11.
|
100
|
+
version: '11.3'
|
95
101
|
- !ruby/object:Gem::Dependency
|
96
102
|
name: guard-rspec
|
97
103
|
requirement: !ruby/object:Gem::Requirement
|
98
104
|
requirements:
|
99
105
|
- - "~>"
|
100
106
|
- !ruby/object:Gem::Version
|
101
|
-
version: 4.
|
107
|
+
version: '4.7'
|
102
108
|
type: :development
|
103
109
|
prerelease: false
|
104
110
|
version_requirements: !ruby/object:Gem::Requirement
|
105
111
|
requirements:
|
106
112
|
- - "~>"
|
107
113
|
- !ruby/object:Gem::Version
|
108
|
-
version: 4.
|
114
|
+
version: '4.7'
|
109
115
|
- !ruby/object:Gem::Dependency
|
110
116
|
name: factory_girl
|
111
117
|
requirement: !ruby/object:Gem::Requirement
|
112
118
|
requirements:
|
113
119
|
- - "~>"
|
114
120
|
- !ruby/object:Gem::Version
|
115
|
-
version: 4.7
|
121
|
+
version: '4.7'
|
116
122
|
type: :development
|
117
123
|
prerelease: false
|
118
124
|
version_requirements: !ruby/object:Gem::Requirement
|
119
125
|
requirements:
|
120
126
|
- - "~>"
|
121
127
|
- !ruby/object:Gem::Version
|
122
|
-
version: 4.7
|
128
|
+
version: '4.7'
|
123
129
|
- !ruby/object:Gem::Dependency
|
124
130
|
name: sqlite3
|
125
131
|
requirement: !ruby/object:Gem::Requirement
|
126
132
|
requirements:
|
127
133
|
- - "~>"
|
128
134
|
- !ruby/object:Gem::Version
|
129
|
-
version: 1.3
|
135
|
+
version: '1.3'
|
130
136
|
type: :development
|
131
137
|
prerelease: false
|
132
138
|
version_requirements: !ruby/object:Gem::Requirement
|
133
139
|
requirements:
|
134
140
|
- - "~>"
|
135
141
|
- !ruby/object:Gem::Version
|
136
|
-
version: 1.3
|
142
|
+
version: '1.3'
|
137
143
|
- !ruby/object:Gem::Dependency
|
138
144
|
name: database_cleaner
|
139
145
|
requirement: !ruby/object:Gem::Requirement
|
140
146
|
requirements:
|
141
147
|
- - "~>"
|
142
148
|
- !ruby/object:Gem::Version
|
143
|
-
version: 1.5
|
149
|
+
version: '1.5'
|
144
150
|
type: :development
|
145
151
|
prerelease: false
|
146
152
|
version_requirements: !ruby/object:Gem::Requirement
|
147
153
|
requirements:
|
148
154
|
- - "~>"
|
149
155
|
- !ruby/object:Gem::Version
|
150
|
-
version: 1.5
|
156
|
+
version: '1.5'
|
151
157
|
- !ruby/object:Gem::Dependency
|
152
158
|
name: rspec
|
153
159
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,20 +182,6 @@ dependencies:
|
|
176
182
|
- - ">="
|
177
183
|
- !ruby/object:Gem::Version
|
178
184
|
version: '0'
|
179
|
-
- !ruby/object:Gem::Dependency
|
180
|
-
name: protected_attributes
|
181
|
-
requirement: !ruby/object:Gem::Requirement
|
182
|
-
requirements:
|
183
|
-
- - "~>"
|
184
|
-
- !ruby/object:Gem::Version
|
185
|
-
version: 1.1.3
|
186
|
-
type: :development
|
187
|
-
prerelease: false
|
188
|
-
version_requirements: !ruby/object:Gem::Requirement
|
189
|
-
requirements:
|
190
|
-
- - "~>"
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
version: 1.1.3
|
193
185
|
description: Model serialization, paging, side-loading and filtering
|
194
186
|
email:
|
195
187
|
- gavinjoyce@gmail.com
|
@@ -221,6 +213,7 @@ files:
|
|
221
213
|
- lib/restpack_serializer/serializable/single.rb
|
222
214
|
- lib/restpack_serializer/serializable/sortable.rb
|
223
215
|
- lib/restpack_serializer/version.rb
|
216
|
+
- performance/mem.rb
|
224
217
|
- performance/perf.rb
|
225
218
|
- restpack_serializer.gemspec
|
226
219
|
- spec/factory/factory_spec.rb
|
@@ -245,7 +238,7 @@ files:
|
|
245
238
|
homepage: https://github.com/RestPack
|
246
239
|
licenses: []
|
247
240
|
metadata: {}
|
248
|
-
post_install_message:
|
241
|
+
post_install_message:
|
249
242
|
rdoc_options: []
|
250
243
|
require_paths:
|
251
244
|
- lib
|
@@ -260,9 +253,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
260
253
|
- !ruby/object:Gem::Version
|
261
254
|
version: '0'
|
262
255
|
requirements: []
|
263
|
-
|
264
|
-
|
265
|
-
signing_key:
|
256
|
+
rubygems_version: 3.1.4
|
257
|
+
signing_key:
|
266
258
|
specification_version: 4
|
267
259
|
summary: Model serialization, paging, side-loading and filtering
|
268
260
|
test_files:
|
@@ -285,4 +277,3 @@ test_files:
|
|
285
277
|
- spec/serializable/sortable_spec.rb
|
286
278
|
- spec/spec_helper.rb
|
287
279
|
- spec/support/factory.rb
|
288
|
-
has_rdoc:
|