static_model 0.3.0 → 0.3.1
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/History.txt +4 -0
- data/Rakefile +1 -1
- data/lib/static_model/base.rb +24 -24
- data/lib/static_model.rb +2 -2
- data/static_model.gemspec +7 -7
- data/test/test_generator_helper.rb +1 -5
- data/test/test_helper.rb +9 -9
- data/test/test_static_model.rb +39 -45
- data/test/test_static_model_associations.rb +2 -2
- data/test/test_static_model_generator.rb +1 -2
- data/test/test_static_model_scope.rb +4 -4
- metadata +13 -8
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ begin
|
|
13
13
|
s.summary = 'ActiveRecord like functionalities for reading from YAML with a simple class implementation'
|
14
14
|
s.description = %q{StaticModel provides a Base class much like ActiveRecord which supports reading from a YAML file and basic associations to ActiveRecord}
|
15
15
|
s.rubyforge_project = %q{quirkey}
|
16
|
-
s.add_runtime_dependency(%q<activesupport>, ["
|
16
|
+
s.add_runtime_dependency(%q<activesupport>, ["~>2.3.8"])
|
17
17
|
s.add_runtime_dependency(%q<rubigen>, [">= 1.5.1"])
|
18
18
|
s.add_development_dependency(%q<Shoulda>, [">= 1.2.0"])
|
19
19
|
end
|
data/lib/static_model/base.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
module StaticModel
|
1
|
+
module StaticModel
|
2
2
|
class Base
|
3
3
|
include StaticModel::Associations
|
4
4
|
include StaticModel::ActiveRecord
|
5
5
|
include StaticModel::Comparable
|
6
|
-
|
6
|
+
|
7
7
|
@@load_path = File.join('config', 'data')
|
8
8
|
|
9
9
|
attr_reader :id
|
10
|
-
|
10
|
+
|
11
11
|
def initialize(attribute_hash = {}, force_load = true)
|
12
12
|
self.class.load if force_load
|
13
13
|
raise(StaticModel::BadOptions, "Initializing a model is done with a Hash {} given #{attribute_hash.inspect}") unless attribute_hash.is_a?(Hash)
|
@@ -17,7 +17,7 @@ module StaticModel
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def to_s
|
20
|
-
self.inspect
|
20
|
+
"<#{self.class} #{@attributes.inspect}>"
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.attribute(name, options = {})
|
@@ -27,24 +27,24 @@ module StaticModel
|
|
27
27
|
}.merge(options)
|
28
28
|
@defined_attributes ||= {}
|
29
29
|
@defined_attributes[name.to_s] = options
|
30
|
-
|
30
|
+
|
31
31
|
module_eval <<-EOT
|
32
32
|
def #{name}
|
33
33
|
@attributes['#{name}'] || #{options[:default].inspect}
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
def #{name}=(value)
|
37
37
|
if !#{options[:freeze].inspect}
|
38
38
|
@attributes['#{name}'] = value
|
39
39
|
end
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
def #{name}?
|
43
43
|
!!#{name}
|
44
44
|
end
|
45
45
|
EOT
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
def self.defined_attributes
|
49
49
|
@defined_attributes || {}
|
50
50
|
end
|
@@ -60,7 +60,7 @@ module StaticModel
|
|
60
60
|
def attribute_names
|
61
61
|
(attributes.keys | self.class.class_attributes.keys | self.class.defined_attributes.keys).collect {|k| k.to_s }
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
def has_attribute?(name)
|
65
65
|
name.to_s == 'id' || attribute_names.include?(name.to_s)
|
66
66
|
end
|
@@ -95,7 +95,7 @@ module StaticModel
|
|
95
95
|
records[0]
|
96
96
|
end
|
97
97
|
alias_method :first, :find_first
|
98
|
-
|
98
|
+
|
99
99
|
def find_last
|
100
100
|
records[records.length-1]
|
101
101
|
end
|
@@ -109,7 +109,7 @@ module StaticModel
|
|
109
109
|
records.find {|r| r.has_attribute?(attribute) ? (r.send(attribute) == value) : false }
|
110
110
|
end
|
111
111
|
alias_method :find_by, :find_first_by
|
112
|
-
|
112
|
+
|
113
113
|
def find_last_by(attribute, value)
|
114
114
|
records.reverse.find {|r| r.has_attribute?(attribute) ? (r.send(attribute) == value) : false }
|
115
115
|
end
|
@@ -134,7 +134,7 @@ module StaticModel
|
|
134
134
|
@records = records && !records.empty? ? records.dup.collect {|r| new(r, false) } : []
|
135
135
|
@loaded = true
|
136
136
|
end
|
137
|
-
|
137
|
+
|
138
138
|
def reload!
|
139
139
|
load(true)
|
140
140
|
end
|
@@ -154,29 +154,29 @@ module StaticModel
|
|
154
154
|
@loaded = false
|
155
155
|
@records = nil
|
156
156
|
end
|
157
|
-
|
157
|
+
|
158
158
|
def count
|
159
159
|
records.length
|
160
160
|
end
|
161
|
-
|
161
|
+
|
162
162
|
def class_attributes
|
163
163
|
load
|
164
164
|
@class_attributes ||= {}
|
165
165
|
end
|
166
|
-
|
166
|
+
|
167
167
|
def class_attribute(name)
|
168
168
|
class_attributes[name]
|
169
169
|
end
|
170
|
-
|
170
|
+
|
171
171
|
def records
|
172
172
|
load
|
173
173
|
@records
|
174
174
|
end
|
175
|
-
|
175
|
+
|
176
176
|
def next_id
|
177
177
|
last_id + 1
|
178
178
|
end
|
179
|
-
|
179
|
+
|
180
180
|
def last_id
|
181
181
|
@last_id ||= 0
|
182
182
|
end
|
@@ -184,12 +184,12 @@ module StaticModel
|
|
184
184
|
def last_id=(new_last_id)
|
185
185
|
@last_id = new_last_id if new_last_id > self.last_id
|
186
186
|
end
|
187
|
-
|
187
|
+
|
188
188
|
protected
|
189
189
|
def default_data_file_path
|
190
190
|
File.join(@@load_path, "#{self.to_s.tableize}.yml")
|
191
191
|
end
|
192
|
-
|
192
|
+
|
193
193
|
private
|
194
194
|
def method_missing(meth, *args)
|
195
195
|
meth_name = meth.to_s
|
@@ -202,13 +202,13 @@ module StaticModel
|
|
202
202
|
end
|
203
203
|
super
|
204
204
|
end
|
205
|
-
end
|
205
|
+
end
|
206
206
|
|
207
207
|
protected
|
208
208
|
def set_attribute(name, value)
|
209
209
|
self.attributes[name] = value
|
210
210
|
end
|
211
|
-
|
211
|
+
|
212
212
|
def get_attribute(name)
|
213
213
|
attributes.has_key?(name) ? attributes[name] : self.class.class_attribute(name)
|
214
214
|
end
|
@@ -227,6 +227,6 @@ module StaticModel
|
|
227
227
|
end
|
228
228
|
super
|
229
229
|
end
|
230
|
-
|
230
|
+
|
231
231
|
end
|
232
|
-
end
|
232
|
+
end
|
data/lib/static_model.rb
CHANGED
@@ -4,10 +4,11 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
4
4
|
require 'yaml' unless defined?(YAML)
|
5
5
|
require 'erb' unless defined?(ERB)
|
6
6
|
|
7
|
+
gem 'activesupport', '~>2.3.8'
|
7
8
|
require 'active_support'
|
8
9
|
|
9
10
|
module StaticModel
|
10
|
-
VERSION = '0.3.
|
11
|
+
VERSION = '0.3.1'
|
11
12
|
end
|
12
13
|
|
13
14
|
require 'static_model/errors'
|
@@ -16,4 +17,3 @@ require 'static_model/active_record'
|
|
16
17
|
require 'static_model/comparable'
|
17
18
|
require 'static_model/base'
|
18
19
|
require 'static_model/rails'
|
19
|
-
|
data/static_model.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{static_model}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aaron Quint"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-10-22}
|
13
13
|
s.description = %q{StaticModel provides a Base class much like ActiveRecord which supports reading from a YAML file and basic associations to ActiveRecord}
|
14
14
|
s.email = %q{aaron at quirkey dot com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -54,7 +54,7 @@ Gem::Specification.new do |s|
|
|
54
54
|
s.rdoc_options = ["--charset=UTF-8"]
|
55
55
|
s.require_paths = ["lib"]
|
56
56
|
s.rubyforge_project = %q{quirkey}
|
57
|
-
s.rubygems_version = %q{1.3.
|
57
|
+
s.rubygems_version = %q{1.3.7}
|
58
58
|
s.summary = %q{ActiveRecord like functionalities for reading from YAML with a simple class implementation}
|
59
59
|
s.test_files = [
|
60
60
|
"test/test_generator_helper.rb",
|
@@ -69,17 +69,17 @@ Gem::Specification.new do |s|
|
|
69
69
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
70
70
|
s.specification_version = 3
|
71
71
|
|
72
|
-
if Gem::Version.new(Gem::
|
73
|
-
s.add_runtime_dependency(%q<activesupport>, ["
|
72
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
73
|
+
s.add_runtime_dependency(%q<activesupport>, ["~> 2.3.8"])
|
74
74
|
s.add_runtime_dependency(%q<rubigen>, [">= 1.5.1"])
|
75
75
|
s.add_development_dependency(%q<Shoulda>, [">= 1.2.0"])
|
76
76
|
else
|
77
|
-
s.add_dependency(%q<activesupport>, ["
|
77
|
+
s.add_dependency(%q<activesupport>, ["~> 2.3.8"])
|
78
78
|
s.add_dependency(%q<rubigen>, [">= 1.5.1"])
|
79
79
|
s.add_dependency(%q<Shoulda>, [">= 1.2.0"])
|
80
80
|
end
|
81
81
|
else
|
82
|
-
s.add_dependency(%q<activesupport>, ["
|
82
|
+
s.add_dependency(%q<activesupport>, ["~> 2.3.8"])
|
83
83
|
s.add_dependency(%q<rubigen>, [">= 1.5.1"])
|
84
84
|
s.add_dependency(%q<Shoulda>, [">= 1.2.0"])
|
85
85
|
end
|
data/test/test_helper.rb
CHANGED
@@ -3,11 +3,11 @@ require 'rubygems'
|
|
3
3
|
require 'shoulda'
|
4
4
|
require 'mocha'
|
5
5
|
|
6
|
-
require File.dirname(__FILE__)
|
6
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/static_model'))
|
7
7
|
|
8
8
|
class Book < StaticModel::Base
|
9
9
|
set_data_file File.join(File.dirname(__FILE__), 'data', 'books.yml')
|
10
|
-
|
10
|
+
|
11
11
|
attribute :rating, :default => 3
|
12
12
|
attribute :read, :default => false, :freeze => true
|
13
13
|
end
|
@@ -26,7 +26,7 @@ end
|
|
26
26
|
|
27
27
|
class Publisher < StaticModel::Base
|
28
28
|
set_data_file File.join(File.dirname(__FILE__), 'data', 'publishers.yml')
|
29
|
-
|
29
|
+
|
30
30
|
has_many :authors
|
31
31
|
end
|
32
32
|
|
@@ -39,12 +39,12 @@ end
|
|
39
39
|
|
40
40
|
class Page < StaticModel::Base
|
41
41
|
set_data_file File.join(File.dirname(__FILE__), 'data', 'pages.yml')
|
42
|
-
|
42
|
+
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
class Store < StaticModel::Base
|
46
46
|
set_data_file File.join(File.dirname(__FILE__), 'data', 'stores.yml')
|
47
|
-
|
47
|
+
|
48
48
|
end
|
49
49
|
|
50
50
|
class Project < StaticModel::Base
|
@@ -53,7 +53,7 @@ class Project < StaticModel::Base
|
|
53
53
|
end
|
54
54
|
|
55
55
|
class Test::Unit::TestCase
|
56
|
-
|
56
|
+
|
57
57
|
def assert_all(collection)
|
58
58
|
collection.each do |one|
|
59
59
|
assert yield(one), "#{one} is not true"
|
@@ -82,9 +82,9 @@ class Test::Unit::TestCase
|
|
82
82
|
i += 1
|
83
83
|
end
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
def assert_set_of(klass, set)
|
87
87
|
assert set.respond_to?(:each), "#{set} is not a set (does not include Enumerable)"
|
88
88
|
assert_all(set) {|a| a.is_a?(klass) }
|
89
89
|
end
|
90
|
-
end
|
90
|
+
end
|
data/test/test_static_model.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
3
|
class TestStaticModel < Test::Unit::TestCase
|
4
4
|
|
5
5
|
context "StaticModel" do
|
6
|
-
context "A class that inherits from Base" do
|
6
|
+
context "A class that inherits from Base" do
|
7
7
|
context "an instance" do
|
8
8
|
|
9
9
|
setup do
|
@@ -20,7 +20,7 @@ class TestStaticModel < Test::Unit::TestCase
|
|
20
20
|
assert_raise(StaticModel::BadOptions) do
|
21
21
|
Book.new("im bad")
|
22
22
|
end
|
23
|
-
end
|
23
|
+
end
|
24
24
|
end
|
25
25
|
|
26
26
|
context "attributes" do
|
@@ -34,8 +34,8 @@ class TestStaticModel < Test::Unit::TestCase
|
|
34
34
|
assert_equal 'New Title', @book.title
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
38
|
-
context "attribute" do
|
37
|
+
|
38
|
+
context "attribute" do
|
39
39
|
should "define methods for the attribute" do
|
40
40
|
book = Book[1]
|
41
41
|
assert book.respond_to?(:rating)
|
@@ -43,7 +43,7 @@ class TestStaticModel < Test::Unit::TestCase
|
|
43
43
|
assert book.respond_to?(:rating?)
|
44
44
|
assert_equal 5, book.rating
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
should "return the default if attribute is not set" do
|
48
48
|
book = Book[2]
|
49
49
|
assert book.respond_to?(:rating)
|
@@ -51,27 +51,21 @@ class TestStaticModel < Test::Unit::TestCase
|
|
51
51
|
assert book.respond_to?(:rating?)
|
52
52
|
assert_equal 3, book.rating
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
should "freeze the attribute" do
|
56
56
|
book = Book[1]
|
57
57
|
assert book.read?
|
58
58
|
book.read = false
|
59
59
|
assert book.read?
|
60
60
|
end
|
61
|
-
|
62
|
-
end
|
63
61
|
|
64
|
-
context "to_s" do
|
65
|
-
should "inspect" do
|
66
|
-
assert_equal @book.inspect, @book.to_s
|
67
|
-
end
|
68
62
|
end
|
69
|
-
|
63
|
+
|
70
64
|
context "has_attribute?" do
|
71
65
|
should "return false if attribute doesn't exist" do
|
72
66
|
assert !@book.has_attribute?(:blurgh)
|
73
67
|
end
|
74
|
-
|
68
|
+
|
75
69
|
should "return true if attribute exists" do
|
76
70
|
assert @book.has_attribute?(:id)
|
77
71
|
assert @book.has_attribute?(:title)
|
@@ -113,7 +107,7 @@ class TestStaticModel < Test::Unit::TestCase
|
|
113
107
|
end
|
114
108
|
|
115
109
|
should "reload with next find" do
|
116
|
-
|
110
|
+
assert_equal @author.attributes, @new_book.attributes
|
117
111
|
end
|
118
112
|
|
119
113
|
teardown do
|
@@ -127,9 +121,9 @@ class TestStaticModel < Test::Unit::TestCase
|
|
127
121
|
should "be length + 1" do
|
128
122
|
Store.load
|
129
123
|
assert_equal Store.count + 1, Store.next_id
|
130
|
-
end
|
124
|
+
end
|
131
125
|
end
|
132
|
-
|
126
|
+
|
133
127
|
context "if ids were manualy assigned" do
|
134
128
|
should "be 1 after the last id" do
|
135
129
|
Publisher.load
|
@@ -137,63 +131,63 @@ class TestStaticModel < Test::Unit::TestCase
|
|
137
131
|
end
|
138
132
|
end
|
139
133
|
end
|
140
|
-
|
134
|
+
|
141
135
|
context "where the records are defined without ids" do
|
142
136
|
setup do
|
143
137
|
Store.reload!
|
144
138
|
end
|
145
|
-
|
139
|
+
|
146
140
|
context "loading" do
|
147
141
|
setup do
|
148
142
|
@stores = Store.all
|
149
143
|
end
|
150
|
-
|
144
|
+
|
151
145
|
should "automaticaly assign ids" do
|
152
146
|
@stores.each do |store|
|
153
147
|
assert store.id
|
154
148
|
assert store.id.is_a?(Fixnum)
|
155
149
|
end
|
156
150
|
end
|
157
|
-
|
151
|
+
|
158
152
|
should "assign next id" do
|
159
153
|
assert Store.next_id
|
160
154
|
assert_equal 3, Store.next_id
|
161
155
|
end
|
162
156
|
end
|
163
|
-
|
157
|
+
|
164
158
|
context "initializing without id" do
|
165
159
|
setup do
|
166
160
|
@store = Store.new({:name => 'Metro Comics', :city => 'New York'})
|
167
161
|
end
|
168
|
-
|
162
|
+
|
169
163
|
should "return instance" do
|
170
164
|
assert @store.is_a?(Store)
|
171
165
|
end
|
172
|
-
|
166
|
+
|
173
167
|
should "set attributes" do
|
174
168
|
assert_equal 'New York', @store.city
|
175
169
|
end
|
176
|
-
|
170
|
+
|
177
171
|
should "assign id from next id" do
|
178
172
|
assert_equal 3, @store.id
|
179
173
|
end
|
180
|
-
|
174
|
+
|
181
175
|
should "increment next_id" do
|
182
176
|
assert_equal 4, Store.next_id
|
183
177
|
end
|
184
|
-
|
178
|
+
|
185
179
|
end
|
186
180
|
end
|
187
|
-
|
181
|
+
|
188
182
|
context "loading a data_file with embedded erb" do
|
189
183
|
setup do
|
190
184
|
@projects = Project.all
|
191
185
|
end
|
192
|
-
|
186
|
+
|
193
187
|
should "evaluate erb expressions at load time" do
|
194
188
|
assert_equal 1.day.ago.strftime('%m/%d/%Y %I:%M%p'), @projects.first.created_at
|
195
189
|
end
|
196
|
-
|
190
|
+
|
197
191
|
should "evaluate erb in current context" do
|
198
192
|
assert_equal Author.first, @projects[1].author
|
199
193
|
end
|
@@ -282,11 +276,11 @@ class TestStaticModel < Test::Unit::TestCase
|
|
282
276
|
setup do
|
283
277
|
@book = Book.find_last
|
284
278
|
end
|
285
|
-
|
279
|
+
|
286
280
|
should "return the last instance from all records" do
|
287
281
|
assert_equal Book.find_all.last, @book
|
288
282
|
end
|
289
|
-
|
283
|
+
|
290
284
|
should "return an instance of klass" do
|
291
285
|
assert @book.is_a?(Book)
|
292
286
|
end
|
@@ -349,21 +343,21 @@ class TestStaticModel < Test::Unit::TestCase
|
|
349
343
|
end
|
350
344
|
end
|
351
345
|
end
|
352
|
-
|
346
|
+
|
353
347
|
context "find_last_by" do
|
354
348
|
setup do
|
355
349
|
@author = 'Chuck Palahniuk'
|
356
350
|
@book = Book.find_last_by(:author, @author)
|
357
351
|
end
|
358
|
-
|
352
|
+
|
359
353
|
should "return an instance of klass" do
|
360
354
|
assert @book.is_a?(Book)
|
361
355
|
end
|
362
|
-
|
356
|
+
|
363
357
|
should "return record matching search" do
|
364
358
|
assert @author, @book.author
|
365
359
|
end
|
366
|
-
|
360
|
+
|
367
361
|
context "when there is no match" do
|
368
362
|
should "return nil" do
|
369
363
|
assert_nil Book.find_last_by(:author, 'Michael R. Bernstein')
|
@@ -454,40 +448,40 @@ class TestStaticModel < Test::Unit::TestCase
|
|
454
448
|
assert_equal Book.all.length, Book.count
|
455
449
|
end
|
456
450
|
end
|
457
|
-
|
451
|
+
|
458
452
|
context "with a class with yaml class vars" do
|
459
453
|
setup do
|
460
454
|
@pages = Page.all
|
461
455
|
end
|
462
|
-
|
456
|
+
|
463
457
|
should "load :records into @records" do
|
464
458
|
assert_set_of Page, @pages
|
465
459
|
assert Page.loaded?
|
466
460
|
end
|
467
|
-
|
461
|
+
|
468
462
|
should "give access to top level attributes as class methods" do
|
469
463
|
assert_equal 'http://www.quirkey.com', Page.url
|
470
464
|
assert_equal 'The Best Ever', Page.title
|
471
465
|
end
|
472
|
-
|
466
|
+
|
473
467
|
should "return a hash for class attribute" do
|
474
468
|
assert Page.settings.is_a?(Hash)
|
475
469
|
assert_equal 'test', Page.settings['username']
|
476
470
|
end
|
477
|
-
|
471
|
+
|
478
472
|
should "have class attributes appear as record accessor defaults if none exist" do
|
479
473
|
assert_equal 'http://www.quirkey.com', Page[1].url
|
480
474
|
end
|
481
|
-
|
475
|
+
|
482
476
|
should "not overwrite record specific methods" do
|
483
477
|
assert_equal 'http://github.com', Page[2].url
|
484
478
|
end
|
485
|
-
|
479
|
+
|
486
480
|
context "class_attributes" do
|
487
481
|
setup do
|
488
482
|
@attributes = Page.class_attributes
|
489
483
|
end
|
490
|
-
|
484
|
+
|
491
485
|
should "return a hash of all top level settings" do
|
492
486
|
assert @attributes.is_a?(Hash)
|
493
487
|
assert_equal 3, @attributes.length
|
@@ -1,14 +1,14 @@
|
|
1
|
-
require
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
3
|
class TestStaticModelScope < Test::Unit::TestCase
|
4
4
|
|
5
5
|
# context "a static model class" do
|
6
6
|
# context "A class with scope" do
|
7
|
-
#
|
7
|
+
#
|
8
8
|
# end
|
9
9
|
# end
|
10
|
-
|
10
|
+
|
11
11
|
def test_truth
|
12
12
|
assert true
|
13
13
|
end
|
14
|
-
end
|
14
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 1
|
9
|
+
version: 0.3.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Aaron Quint
|
@@ -14,27 +14,29 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-10-22 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activesupport
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
|
-
- -
|
26
|
+
- - ~>
|
26
27
|
- !ruby/object:Gem::Version
|
27
28
|
segments:
|
28
29
|
- 2
|
29
|
-
-
|
30
|
-
-
|
31
|
-
version: 2.
|
30
|
+
- 3
|
31
|
+
- 8
|
32
|
+
version: 2.3.8
|
32
33
|
type: :runtime
|
33
34
|
version_requirements: *id001
|
34
35
|
- !ruby/object:Gem::Dependency
|
35
36
|
name: rubigen
|
36
37
|
prerelease: false
|
37
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
38
40
|
requirements:
|
39
41
|
- - ">="
|
40
42
|
- !ruby/object:Gem::Version
|
@@ -49,6 +51,7 @@ dependencies:
|
|
49
51
|
name: Shoulda
|
50
52
|
prerelease: false
|
51
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
52
55
|
requirements:
|
53
56
|
- - ">="
|
54
57
|
- !ruby/object:Gem::Version
|
@@ -111,6 +114,7 @@ rdoc_options:
|
|
111
114
|
require_paths:
|
112
115
|
- lib
|
113
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
114
118
|
requirements:
|
115
119
|
- - ">="
|
116
120
|
- !ruby/object:Gem::Version
|
@@ -118,6 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
122
|
- 0
|
119
123
|
version: "0"
|
120
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
121
126
|
requirements:
|
122
127
|
- - ">="
|
123
128
|
- !ruby/object:Gem::Version
|
@@ -127,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
132
|
requirements: []
|
128
133
|
|
129
134
|
rubyforge_project: quirkey
|
130
|
-
rubygems_version: 1.3.
|
135
|
+
rubygems_version: 1.3.7
|
131
136
|
signing_key:
|
132
137
|
specification_version: 3
|
133
138
|
summary: ActiveRecord like functionalities for reading from YAML with a simple class implementation
|