restpack_serializer 0.6.7 → 0.6.12
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 +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:
|