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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9dab0921e07fb607cfceb802a42fdb5f8cc20eb745522c46dc7b451b8a0cd14e
4
- data.tar.gz: 6c6fcc0035ef543ee6d60bffa18ca83379d090e800950411d7316c21031784ad
3
+ metadata.gz: b4622052b8c6338ea135b98dd3376c8fdd51765b74fa51113edbfdc5afd17d58
4
+ data.tar.gz: eaddf9d21c440dc8385a5afa425b9c02b327e9537544c7772216898af48d6603
5
5
  SHA512:
6
- metadata.gz: c97545976f850ba0191dcabf7f34b8daeebf54d2b82c9a37305f569cc7cadaa1b9f0f92dc42f81193e9fd56eae2e862d650b023c4bcd105739c18c0baaf35e13
7
- data.tar.gz: 7423763628b13e5643193347379eefbcf2cc2d78266cafd147d8c86d3f755feca93dd3f2c9bca92e8ec008b1ec7d00c9ed7bf1590a2f26e83c99fa529a987de1
6
+ metadata.gz: cf931c28818461efff56c8e7b72a83157952bd464695e037ca3214a7aeb758c89b48b7ffe612016305c3087194a98c08b91944e4d993c0aa28ce6d5907208da6
7
+ data.tar.gz: f30ffac69df4a39fcbcabe838165cff348dbe01c1d8f8f8c48930d0c3898ac5b60574d80f891434f3a92438d4e079043288d9f5d1b425b867adbb6e371ee55f1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- alba (0.2.0)
4
+ alba (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -9,7 +9,7 @@ module Alba
9
9
  end
10
10
 
11
11
  def to_hash(target)
12
- objects = target.__send__(@name)
12
+ objects = target.public_send(@name)
13
13
  @resource ||= resource_class
14
14
  objects.map { |o| @resource.new(o).to_hash }
15
15
  end
@@ -9,7 +9,7 @@ module Alba
9
9
  end
10
10
 
11
11
  def to_hash(target)
12
- object = target.__send__(@name)
12
+ object = target.public_send(@name)
13
13
  @resource ||= resource_class
14
14
  @resource.new(object).to_hash
15
15
  end
@@ -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, :_one, :_many, :_serializer].freeze
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
- @_one[name.to_sym] = One.new(name: name, resource: resource, &block)
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
- @_many[name.to_sym] = Many.new(name: name, resource: resource, &block)
75
+ @_attributes[name.to_sym] = Many.new(name: name, resource: resource, &block)
94
76
  end
95
77
 
96
78
  def serializer(name)
@@ -1,3 +1,3 @@
1
1
  module Alba
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
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.2.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-25 00:00:00.000000000 Z
11
+ date: 2020-07-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Fast and flexible JSON serializer
14
14
  email: