ishin 0.1.0 → 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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/README.md +34 -2
- data/ishin.gemspec +1 -2
- data/lib/ishin.rb +6 -0
- data/lib/ishin/version.rb +1 -1
- metadata +3 -18
- data/bin/setup +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5ed152cc96db8d638bde56aa627fc3fe4019038
|
4
|
+
data.tar.gz: 052b32431e70c55e0fe3497ca2e586ad86c031aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 087e9073b09d19c6001d386634165febbc9b9689343cdb00be535c3b2a0710b3862d3b8d79e7130efaa420e9c9fad4705c40f374ec50f09d406059428ef96f6c
|
7
|
+
data.tar.gz: aa5cb190539f3883c00b36204c8d4da0b19f66ed9c65dbb377aee7f50325dc20a5c2d022f7e838e09026a11a174f5f04cbf707084c3b1e37192328bcdd4c5318
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
[](https://codeclimate.com/github/EddyLuten/ishin)
|
2
|
+
[](https://codeclimate.com/github/EddyLuten/ishin)
|
3
|
+
[](https://rubygems.org/gems/ishin)
|
4
|
+
[](https://travis-ci.org/EddyLuten/ishin)
|
5
|
+
|
1
6
|
# Ishin
|
2
7
|
|
3
8
|
Ishin converts Ruby objects into their Hash representations. It works with plain old classes, extended classes, classes with mixins, and hashes (see Usage for more on that).
|
@@ -18,7 +23,9 @@ Or install it manually by:
|
|
18
23
|
|
19
24
|
gem install ishin
|
20
25
|
|
21
|
-
##
|
26
|
+
## Example
|
27
|
+
|
28
|
+
As a class method callable on any object:
|
22
29
|
|
23
30
|
```ruby
|
24
31
|
require 'ishin'
|
@@ -26,7 +33,19 @@ require 'ishin'
|
|
26
33
|
hash = Ishin.to_hash(my_object)
|
27
34
|
```
|
28
35
|
|
29
|
-
|
36
|
+
Or included in your object as a mixin:
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
class YourClass
|
40
|
+
include Ishin::Mixin
|
41
|
+
# etc.
|
42
|
+
end
|
43
|
+
|
44
|
+
instance = YourClass.new
|
45
|
+
hash = instance.to_hash
|
46
|
+
```
|
47
|
+
|
48
|
+
### Usage
|
30
49
|
|
31
50
|
A simple example is worth a thousand words:
|
32
51
|
|
@@ -110,6 +129,19 @@ Ishin.to_hash(lassie, symbolize: false)
|
|
110
129
|
```
|
111
130
|
When setting the `symbolize` option to `false`, the explicit conversion of strings to symbols is prevented. This, however, does *not* mean that hashes whose keys are already symbols are converted into string-based keys.
|
112
131
|
|
132
|
+
## As a Mixin
|
133
|
+
|
134
|
+
To use Ishin as a mixin in your own objects, simply include `Ishin::Mixin`:
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
class MyObject
|
138
|
+
include Ishin::Mixin
|
139
|
+
# etc.
|
140
|
+
end
|
141
|
+
```
|
142
|
+
|
143
|
+
Your object now exposes a method named `to_hash` taking the same options at the `Ishin::to_hash` class method documented above.
|
144
|
+
|
113
145
|
## Running the Specs
|
114
146
|
|
115
147
|
Once `bundle` is executed, simply run:
|
data/ishin.gemspec
CHANGED
@@ -20,8 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler", "~> 1.8"
|
24
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
24
|
spec.add_development_dependency "rspec"
|
26
|
-
spec.add_development_dependency "
|
25
|
+
spec.add_development_dependency "codeclimate-test-reporter"
|
27
26
|
end
|
data/lib/ishin.rb
CHANGED
data/lib/ishin/version.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ishin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eddy Luten
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.8'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.8'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rake
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,7 +39,7 @@ dependencies:
|
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
42
|
+
name: codeclimate-test-reporter
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
45
|
- - ">="
|
@@ -81,7 +67,6 @@ files:
|
|
81
67
|
- README.md
|
82
68
|
- Rakefile
|
83
69
|
- bin/console
|
84
|
-
- bin/setup
|
85
70
|
- ishin.gemspec
|
86
71
|
- lib/ishin.rb
|
87
72
|
- lib/ishin/version.rb
|