fars 0.0.1 → 0.0.2

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.
@@ -1,77 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Fars::BaseModelSerializer do
4
- before :all do
5
- ActiveSupport::Inflector.inflections do |inflect|
6
- inflect.irregular 'slave', 'slaves'
7
- end
8
-
9
- class Master < ActiveRecord::Base
10
- has_many :slaves
11
- end
12
- class Slave < ActiveRecord::Base
13
- belongs_to :master
14
- end
15
-
16
- module V1
17
- class MasterSerializer < Fars::BaseModelSerializer
18
- attributes :id, :name, :data, # attrs
19
- :slaves
20
-
21
- def meta
22
- {'metadata' => :present}
23
- end
24
- end
25
- class SlaveSerializer < Fars::BaseModelSerializer
26
- attributes :id, :name, :data # attrs
27
- end
28
-
29
- class MastersSerializer < Fars::BaseCollectionSerializer ; end
30
- class SlavesSerializer < Fars::BaseCollectionSerializer ; end
31
- end
32
- end
33
-
34
- context '#to_json' do
35
- before :each do
36
- @object = Master.create(id: 1, name: 'Object1', data: '123')
37
- 2.times.each {|i| Slave.create(id: i+1, master_id: @object.id, name: "Slave #{i+1}") }
38
- end
39
-
40
- it 'returns all fields with metadata' do
41
- json_data = {
42
- master: {id: 1, name: 'Object1', data: '123'},
43
- _metadata: {metadata: :present}
44
- }.to_json
45
-
46
- V1::MasterSerializer.new(
47
- @object,
48
- add_metadata: true,
49
- fields: [:id, :name, :data]
50
- ).to_json.should == json_data
51
- end
52
-
53
- it 'returns not all field, whithout metadata' do
54
- json_data = {master: {id: 1, name: 'Object1'}}.to_json
55
-
56
- V1::MasterSerializer.new(
57
- @object,
58
- add_metadata: false,
59
- fields: [:id, :name]
60
- ).to_json.should == json_data
61
- end
62
-
63
- it 'returns all field with slaves' do
64
- json_data = {master: {id: 1, name: 'Object1', data: '123',
65
- slaves: [
66
- {slave: {id: 1, name: 'Slave 1', data: nil}},
67
- {slave: {id: 2, name: 'Slave 2', data: nil}},
68
- ]}}.to_json
69
-
70
- V1::MasterSerializer.new(
71
- @object,
72
- add_metadata: false,
73
- fields: [:id, :name, :data, :slaves]
74
- ).to_json.should == json_data
75
- end
76
- end
77
- end
@@ -1,75 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Fars::BaseModelSerializer do
4
- before :all do
5
- ActiveSupport::Inflector.inflections do |inflect|
6
- inflect.irregular 'slave', 'slaves'
7
- end
8
-
9
- class Master < ActiveRecord::Base
10
- has_many :slaves
11
- end
12
- class Slave < ActiveRecord::Base
13
- belongs_to :master
14
- end
15
-
16
- class MasterSerializer < Fars::BaseModelSerializer
17
- attributes :id, :name, :data, # attrs
18
- :slaves
19
-
20
- def meta
21
- {'metadata' => :present}
22
- end
23
- end
24
- class SlaveSerializer < Fars::BaseModelSerializer
25
- attributes :id, :name, :data # attrs
26
- end
27
-
28
- class MastersSerializer < Fars::BaseCollectionSerializer ; end
29
- class SlavesSerializer < Fars::BaseCollectionSerializer ; end
30
- end
31
-
32
- context '#to_json' do
33
- before :each do
34
- @object = Master.create(id: 1, name: 'Object1', data: '123')
35
- 2.times.each {|i| Slave.create(id: i+1, master_id: @object.id, name: "Slave #{i+1}") }
36
- end
37
-
38
- it 'returns all fields with metadata' do
39
- json_data = {
40
- master: {id: 1, name: 'Object1', data: '123'},
41
- _metadata: {metadata: :present}
42
- }.to_json
43
-
44
- MasterSerializer.new(
45
- @object,
46
- add_metadata: true,
47
- fields: [:id, :name, :data]
48
- ).to_json.should == json_data
49
- end
50
-
51
- it 'returns not all field, whithout metadata' do
52
- json_data = {master: {id: 1, name: 'Object1'}}.to_json
53
-
54
- MasterSerializer.new(
55
- @object,
56
- add_metadata: false,
57
- fields: [:id, :name]
58
- ).to_json.should == json_data
59
- end
60
-
61
- it 'returns all field with slaves' do
62
- json_data = {master: {id: 1, name: 'Object1', data: '123',
63
- slaves: [
64
- {slave: {id: 1, name: 'Slave 1', data: nil}},
65
- {slave: {id: 2, name: 'Slave 2', data: nil}},
66
- ]}}.to_json
67
-
68
- MasterSerializer.new(
69
- @object,
70
- add_metadata: false,
71
- fields: [:id, :name, :data, :slaves]
72
- ).to_json.should == json_data
73
- end
74
- end
75
- end