alba 0.2.0 → 0.3.0
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/alba/many.rb +1 -1
- data/lib/alba/one.rb +1 -1
- data/lib/alba/resource.rb +7 -25
- data/lib/alba/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4622052b8c6338ea135b98dd3376c8fdd51765b74fa51113edbfdc5afd17d58
|
4
|
+
data.tar.gz: eaddf9d21c440dc8385a5afa425b9c02b327e9537544c7772216898af48d6603
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf931c28818461efff56c8e7b72a83157952bd464695e037ca3214a7aeb758c89b48b7ffe612016305c3087194a98c08b91944e4d993c0aa28ce6d5907208da6
|
7
|
+
data.tar.gz: f30ffac69df4a39fcbcabe838165cff348dbe01c1d8f8f8c48930d0c3898ac5b60574d80f891434f3a92438d4e079043288d9f5d1b425b867adbb6e371ee55f1
|
data/Gemfile.lock
CHANGED
data/lib/alba/many.rb
CHANGED
data/lib/alba/one.rb
CHANGED
data/lib/alba/resource.rb
CHANGED
@@ -7,7 +7,7 @@ require 'alba/serializers/default_serializer'
|
|
7
7
|
module Alba
|
8
8
|
# This module represents what should be serialized
|
9
9
|
module Resource
|
10
|
-
DSLS = [:_attributes, :
|
10
|
+
DSLS = [:_attributes, :_serializer].freeze
|
11
11
|
def self.included(base)
|
12
12
|
base.class_eval do
|
13
13
|
# Initialize
|
@@ -29,42 +29,24 @@ module Alba
|
|
29
29
|
|
30
30
|
def serialize(with: nil)
|
31
31
|
serializer = case with
|
32
|
+
when nil
|
33
|
+
@_serializer || Alba::Serializers::DefaultSerializer
|
32
34
|
when ->(obj) { obj.is_a?(Class) && obj <= Alba::Serializer }
|
33
35
|
with
|
34
36
|
when Symbol
|
35
37
|
const_get(with.to_s.capitalize)
|
36
38
|
when String
|
37
39
|
const_get(with)
|
38
|
-
when nil
|
39
|
-
@_serializer || Alba::Serializers::DefaultSerializer
|
40
40
|
end
|
41
41
|
serializer.new(serializable_hash).serialize
|
42
42
|
end
|
43
43
|
|
44
44
|
def serializable_hash
|
45
|
-
attrs.merge(ones).merge(manies)
|
46
|
-
end
|
47
|
-
alias to_hash serializable_hash
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def attrs
|
52
45
|
@_attributes.transform_values do |attribute|
|
53
46
|
attribute.to_hash(@_resource)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def ones
|
58
|
-
@_one.transform_values do |one|
|
59
|
-
one.to_hash(@_resource)
|
60
|
-
end || {}
|
61
|
-
end
|
62
|
-
|
63
|
-
def manies
|
64
|
-
@_many.transform_values do |many|
|
65
|
-
many.to_hash(@_resource)
|
66
|
-
end || {}
|
47
|
+
end
|
67
48
|
end
|
49
|
+
alias to_hash serializable_hash
|
68
50
|
end
|
69
51
|
|
70
52
|
# Class methods
|
@@ -86,11 +68,11 @@ module Alba
|
|
86
68
|
end
|
87
69
|
|
88
70
|
def one(name, resource: nil, &block)
|
89
|
-
@
|
71
|
+
@_attributes[name.to_sym] = One.new(name: name, resource: resource, &block)
|
90
72
|
end
|
91
73
|
|
92
74
|
def many(name, resource: nil, &block)
|
93
|
-
@
|
75
|
+
@_attributes[name.to_sym] = Many.new(name: name, resource: resource, &block)
|
94
76
|
end
|
95
77
|
|
96
78
|
def serializer(name)
|
data/lib/alba/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OKURA Masafumi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Fast and flexible JSON serializer
|
14
14
|
email:
|