alba 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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: