hb 0.1.1 → 0.2.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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -1
  3. data/lib/hb.rb +8 -0
  4. data/lib/hb/version.rb +1 -1
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 99fe951457197fe94430c5e51ee5da6c806f92fa
4
- data.tar.gz: a02ecba7c1057cf6b969373eaa0b144a772a9c82
3
+ metadata.gz: 3507c06c5e00ed3f9b862e096b13822421c6808c
4
+ data.tar.gz: 86714ccf9157edafc4718ca01df6b57d16d54945
5
5
  SHA512:
6
- metadata.gz: a3c08ca211f0668c940fa71376132c57d402dad43a155791c0e2ba20331851c2527284459d7cd5e275f7a5b7a7afcbee92fb2a78df51b6a20c0760f91c337653
7
- data.tar.gz: f9aef9d829a71b88a476cb1e6254314018bf2ce6b7a2d34450201d835154a33228464b03856ed68317d7434e6001677b733f2d9fb10a63cc5eae81ba832b6aa5
6
+ metadata.gz: 98df1d4f28df395b0f9502ffe658ef8eb6607f23a94b4ba3abbbb01c95666a1a7e3fbea45f9ed99f11d8088a91959dec0a457423aa2ff01bfe6758f09349d1e3
7
+ data.tar.gz: 3239777de9c21c534597a6fa998d10e2255067bf2606015904b371285d663ec64db5bc725d4216810527fdfe02019900bd3f585f3a255d5c93d3b9ae1cee0dd6
data/README.md CHANGED
@@ -31,7 +31,7 @@ end
31
31
  ```
32
32
  The attributes names are whitelist of attributes to be exposed. You can change key name by using :key option.
33
33
 
34
- ### Buildeing Hash
34
+ ### Building Hash
35
35
 
36
36
  ```ruby
37
37
  Person = Struct.new(:id, :email, :last_name, :first_name, :age)
@@ -44,6 +44,21 @@ PersonPresenter.new(person).to_h
44
44
 
45
45
  # you can pass ActiveModel object like this
46
46
  PersonPresenter.new(User.find(1)).to_h
47
+
48
+ # and you can use factory method
49
+ PersonPresenter.wrap(person)
50
+ ```
51
+
52
+ ### Building Collection
53
+
54
+ ```ruby
55
+ people = [
56
+ Person.new(1, 'nobunaga', 'oda', 30),
57
+ Person.new(2, 'ieyasu', 'tokugawa', 50),
58
+ ]
59
+
60
+ # factory method for collection
61
+ PersonPresenter.collection(people)
47
62
  ```
48
63
 
49
64
  ### Computed Attributes
data/lib/hb.rb CHANGED
@@ -31,6 +31,14 @@ module Hb
31
31
  def key_format(*args)
32
32
  self.key_formatter = KeyFormatter.new(*args)
33
33
  end
34
+
35
+ def wrap(object)
36
+ new(object).to_h
37
+ end
38
+
39
+ def collection(objects)
40
+ objects.map { |o| wrap(o) }
41
+ end
34
42
  end
35
43
 
36
44
  def to_hash
@@ -1,3 +1,3 @@
1
1
  module Hb
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - shozawa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-17 00:00:00.000000000 Z
11
+ date: 2017-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  requirements: []
90
90
  rubyforge_project:
91
- rubygems_version: 2.6.12
91
+ rubygems_version: 2.6.13
92
92
  signing_key:
93
93
  specification_version: 4
94
94
  summary: Simple Hash Builder (=Presenter) for Rails API