json_to_ruby_class 0.1.2 → 0.1.3
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/CHANGELOG.md +6 -0
- data/README.md +6 -3
- data/json_to_ruby_class.gemspec +2 -0
- data/lib/json_to_ruby_class/version.rb +1 -1
- data/lib/json_to_ruby_class.rb +7 -2
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f1100e68418bc5e77bda78f5a3dd0b0d3d7d8d3
|
4
|
+
data.tar.gz: a377fde3a0c6c67af718370079ed5b14880d8aa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 189216748734a6c23831cf3b58028c826902a9d80db7b1d41929f8159a77fc0218366ffba36431ef7293245ec4213eb192428dbc4d08f759f3bc56d35c528c76
|
7
|
+
data.tar.gz: 056c1ada2acb95e6af673463a2bbc5940c16d85d0a1426bea21b9dfb56cad160ca827c80a21388067a0d29228a8e1f5a430ed73651b5b1e1ed57e69b736aaf01
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# JsonToRubyClass
|
2
2
|
|
3
3
|
[](https://travis-ci.org/arcanoid/json_to_ruby_class)
|
4
|
+
[](https://badge.fury.io/rb/json_to_ruby_class)
|
4
5
|
|
5
6
|
JsonToRubyClass is a gem that converts a JSON to a list of Ruby classes and outputs it into a string.
|
6
7
|
|
@@ -23,7 +24,8 @@ Or install it yourself as:
|
|
23
24
|
## Usage
|
24
25
|
|
25
26
|
```ruby
|
26
|
-
json =
|
27
|
+
json = <<-JSON
|
28
|
+
{
|
27
29
|
"students": [
|
28
30
|
{
|
29
31
|
"firstName": "John",
|
@@ -37,6 +39,7 @@ json = {
|
|
37
39
|
}
|
38
40
|
]
|
39
41
|
}
|
42
|
+
JSON
|
40
43
|
|
41
44
|
puts JsonToRubyClass.produce_models(json)
|
42
45
|
```
|
@@ -44,13 +47,13 @@ puts JsonToRubyClass.produce_models(json)
|
|
44
47
|
This produces the following:
|
45
48
|
|
46
49
|
```ruby
|
47
|
-
|
50
|
+
class Student
|
48
51
|
attr_accessor :first_name,
|
49
52
|
:last_name,
|
50
53
|
:age
|
51
54
|
end
|
52
55
|
|
53
|
-
|
56
|
+
class Example
|
54
57
|
attr_accessor :students
|
55
58
|
end
|
56
59
|
```
|
data/json_to_ruby_class.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
|
22
|
+
spec.add_dependency 'activesupport'
|
21
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
22
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
25
|
spec.add_development_dependency "rspec"
|
data/lib/json_to_ruby_class.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require "json_to_ruby_class/version"
|
2
|
+
require 'active_support'
|
3
|
+
require 'active_support/core_ext'
|
2
4
|
|
3
5
|
module JsonToRubyClass
|
4
6
|
def self.produce_models(hash)
|
@@ -11,6 +13,9 @@ module JsonToRubyClass
|
|
11
13
|
#######
|
12
14
|
|
13
15
|
def self.collect_info_from_json(hash, model_name, existing_models_array = [])
|
16
|
+
unless hash.is_a? Hash
|
17
|
+
hash = ActiveSupport::JSON.decode(hash)
|
18
|
+
end
|
14
19
|
accessors = []
|
15
20
|
|
16
21
|
hash.each do |key, value|
|
@@ -49,7 +54,7 @@ module JsonToRubyClass
|
|
49
54
|
model_string = ''
|
50
55
|
|
51
56
|
models_array.each do |model|
|
52
|
-
model_string << "
|
57
|
+
model_string << "class #{model[:name].singularize}\n"
|
53
58
|
model_string << ' attr_accessor '
|
54
59
|
model_string << model[:accessors].join(",\n ")
|
55
60
|
model_string << "\nend\n\n"
|
@@ -57,4 +62,4 @@ module JsonToRubyClass
|
|
57
62
|
|
58
63
|
model_string
|
59
64
|
end
|
60
|
-
end
|
65
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_to_ruby_class
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vasilis Kalligas
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|