storable 0.8.3 → 0.8.4
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.
- data/CHANGES.txt +7 -0
- data/lib/storable.rb +13 -6
- data/storable.gemspec +1 -1
- metadata +4 -4
data/CHANGES.txt
CHANGED
@@ -3,6 +3,13 @@ STORABLE, CHANGES
|
|
3
3
|
* TODO: Handle nested hashes and arrays.
|
4
4
|
* TODO: to_xml, see: http://codeforpeople.com/lib/ruby/xx/xx-2.0.0/README
|
5
5
|
|
6
|
+
#### 0.8.4 (2010-12-23) #############################
|
7
|
+
|
8
|
+
* CHANGE: Moved initialize logic to Storable.from_array.
|
9
|
+
|
10
|
+
NOTE: Classes that rely on this logic when creating
|
11
|
+
new instances will need to call from_array instead!
|
12
|
+
|
6
13
|
|
7
14
|
#### 0.8.3 (2010-11-02) #############################
|
8
15
|
|
data/lib/storable.rb
CHANGED
@@ -35,7 +35,7 @@ class Storable
|
|
35
35
|
require 'proc_source'
|
36
36
|
require 'storable/orderedhash' if USE_ORDERED_HASH
|
37
37
|
unless defined?(SUPPORTED_FORMATS) # We can assume all are defined
|
38
|
-
VERSION = "0.8.
|
38
|
+
VERSION = "0.8.4"
|
39
39
|
NICE_TIME_FORMAT = "%Y-%m-%d@%H:%M:%S".freeze
|
40
40
|
SUPPORTED_FORMATS = [:tsv, :csv, :yaml, :json, :s, :string].freeze
|
41
41
|
end
|
@@ -128,11 +128,7 @@ class Storable
|
|
128
128
|
# +args+ is a list of values to set amongst the fields.
|
129
129
|
# It's assumed that the order values matches the order
|
130
130
|
def initialize(*args)
|
131
|
-
|
132
|
-
break if (index+1) > args.size
|
133
|
-
self.send("#{n}=", args[index])
|
134
|
-
end
|
135
|
-
preprocess if respond_to?(:preprocess)
|
131
|
+
preprocess if respond_to? :preprocess
|
136
132
|
end
|
137
133
|
|
138
134
|
# See SUPPORTED_FORMATS for available values
|
@@ -207,6 +203,17 @@ class Storable
|
|
207
203
|
end
|
208
204
|
end
|
209
205
|
|
206
|
+
def self.from_array(*from)
|
207
|
+
from = from.flatten.compact
|
208
|
+
return nil if !from || from.empty?
|
209
|
+
me = new
|
210
|
+
(self.field_names || []).each_with_index do |n,index|
|
211
|
+
break if index >= from.size
|
212
|
+
me.send("#{n}=", from[index])
|
213
|
+
end
|
214
|
+
me
|
215
|
+
end
|
216
|
+
|
210
217
|
def call(fname)
|
211
218
|
unless field_types[fname.to_sym] == Proc &&
|
212
219
|
Proc === self.send(fname)
|
data/storable.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
@spec = Gem::Specification.new do |s|
|
2
2
|
s.name = "storable"
|
3
3
|
s.rubyforge_project = "storable"
|
4
|
-
s.version = "0.8.
|
4
|
+
s.version = "0.8.4"
|
5
5
|
s.summary = "Storable: Marshal Ruby classes into and out of multiple formats (yaml, json, csv, tsv)"
|
6
6
|
s.description = s.summary
|
7
7
|
s.author = "Delano Mandelbaum"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: storable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 55
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 4
|
10
|
+
version: 0.8.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Delano Mandelbaum
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-12-23 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|