lab5 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lab5.rb +22 -29
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2695165a7fce53e50644a344ec3a5a2acc1a2b13
|
4
|
+
data.tar.gz: abb45727b9207b1c4729c7ea490f0088b6951977
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13f2739340977c72b446dafa66daf2310cbeced9c8dcd8f0b86cec1b436f263ce6a2e0a35d38639b303cc5326860824fac33f97c08d5e73c815096c990dfe7c7
|
7
|
+
data.tar.gz: 0c4891d3826036455ff03761dd88c08224fe13adb4d84efa8b16307129620cb4fb22f3dc4049692235d3d77c9c750e2abeef26f3012a045a529eea8518ad3b1d
|
data/lib/lab5.rb
CHANGED
@@ -1,38 +1,31 @@
|
|
1
|
-
require '
|
2
|
-
require 'xmlsimple'
|
1
|
+
require 'nokogiri'
|
3
2
|
|
4
3
|
class XmlSerializer
|
5
|
-
def self.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
variable_names = object.instance_variables
|
18
|
-
variables = {}
|
19
|
-
|
20
|
-
variable_names.each do |name|
|
21
|
-
variables[name] = object.instance_variable_get(name)
|
4
|
+
def self.serialize_array(array)
|
5
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
6
|
+
xml.objects do
|
7
|
+
array.each do |object|
|
8
|
+
xml.object class_name: object.class.name do
|
9
|
+
object.instance_variables.each do |variable_name|
|
10
|
+
xml.instance_variable object.instance_variable_get(variable_name),
|
11
|
+
name: variable_name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
22
16
|
end
|
23
17
|
|
24
|
-
|
25
|
-
object.class.name => variables
|
26
|
-
}
|
18
|
+
builder.to_xml
|
27
19
|
end
|
28
20
|
|
29
|
-
def self.
|
30
|
-
object
|
21
|
+
def self.deserialize_array(file)
|
22
|
+
Nokogiri::XML(File.open(file)).css('object').map do |element|
|
23
|
+
object = element.attribute('class_name').value.constantize.new
|
24
|
+
element.css('instance_variable').each do |var_element|
|
25
|
+
object.instance_variable_set(var_element.attribute('name').value, var_element.text)
|
26
|
+
end
|
31
27
|
|
32
|
-
|
33
|
-
object.instance_variable_set(name, value)
|
28
|
+
object
|
34
29
|
end
|
35
|
-
|
36
|
-
object
|
37
30
|
end
|
38
|
-
end
|
31
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lab5
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tatiana Karpesh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: XML serializer/deserializer
|
14
14
|
email: tatiana.karpesh@gmail.com
|