json_record 1.1.0.b6 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +15 -12
- data/lib/json_record.rb +14 -8
- data/lib/json_record/attribute_methods.rb +1 -1
- data/lib/json_record/embedded_document.rb +10 -2
- data/lib/json_record/field_definition.rb +9 -1
- data/lib/json_record/json_field.rb +4 -2
- data/lib/json_record/serialized.rb +9 -5
- data/spec/serialized_spec.rb +20 -2
- data/spec/spec_helper.rb +5 -4
- data/spec/test_models.rb +11 -9
- metadata +21 -31
- data/CHANGE_LOG +0 -28
- data/VERSION +0 -1
- data/init.rb +0 -1
- data/json_record.gemspec +0 -73
data/Rakefile
CHANGED
@@ -1,23 +1,22 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
|
-
require '
|
3
|
+
require 'rdoc/task'
|
4
4
|
|
5
5
|
desc 'Default: run unit tests.'
|
6
6
|
task :default => :test
|
7
7
|
|
8
8
|
begin
|
9
|
-
require '
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
9
|
+
require 'rspec'
|
10
|
+
require 'rspec/core/rake_task'
|
11
|
+
desc 'Run the unit tests'
|
12
|
+
RSpec::Core::RakeTask.new(:test)
|
14
13
|
rescue LoadError
|
15
|
-
|
16
|
-
STDERR.puts "You must have rspec
|
14
|
+
task :test do
|
15
|
+
STDERR.puts "You must have rspec 2.0 installed to run the tests"
|
17
16
|
end
|
18
17
|
end
|
19
18
|
|
20
|
-
desc 'Generate documentation
|
19
|
+
desc 'Generate rdoc documentation'
|
21
20
|
Rake::RDocTask.new(:rdoc) do |rdoc|
|
22
21
|
rdoc.rdoc_dir = 'rdoc'
|
23
22
|
rdoc.options << '--title' << 'JSON Record' << '--line-numbers' << '--inline-source' << '--main' << 'README.rdoc'
|
@@ -33,12 +32,16 @@ begin
|
|
33
32
|
gem.email = "brian@embellishedvisions.com"
|
34
33
|
gem.homepage = "http://github.com/bdurand/json_record"
|
35
34
|
gem.authors = ["Brian Durand"]
|
35
|
+
gem.files = FileList["lib/**/*", "spec/**/*", "README.rdoc", "Rakefile", "MIT_LICENSE"].to_a
|
36
|
+
gem.has_rdoc = true
|
37
|
+
gem.extra_rdoc_files = ["README.rdoc", "MIT_LICENSE"]
|
38
|
+
gem.rdoc_options = ["--charset=UTF-8", "--main", "README.rdoc"]
|
36
39
|
|
37
|
-
gem.add_dependency('activerecord', '>= 3.0.0
|
38
|
-
gem.add_development_dependency('rspec', '>=
|
40
|
+
gem.add_dependency('activerecord', '>= 3.0.0')
|
41
|
+
gem.add_development_dependency('rspec', '>=2.0.0')
|
39
42
|
gem.add_development_dependency('jeweler')
|
40
43
|
end
|
41
44
|
|
42
45
|
Jeweler::GemcutterTasks.new
|
43
46
|
rescue LoadError
|
44
|
-
end
|
47
|
+
end
|
data/lib/json_record.rb
CHANGED
@@ -1,18 +1,24 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
|
3
|
+
unless defined?(Yajl) || defined?(JSON)
|
4
|
+
if ActiveRecord::Base.logger
|
5
|
+
ActiveRecord::Base.logger.warn("*** You really should install the json or yajl gem for optimal performance with json_record ***")
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
3
9
|
unless defined?(Boolean)
|
4
10
|
class Boolean
|
5
11
|
end
|
6
12
|
end
|
7
13
|
|
8
14
|
module JsonRecord
|
9
|
-
autoload :
|
10
|
-
autoload :
|
11
|
-
autoload :
|
12
|
-
autoload :
|
13
|
-
autoload :
|
14
|
-
autoload :
|
15
|
-
autoload :Serialized, File.expand_path(
|
15
|
+
autoload :AttributeMethods, File.expand_path("../json_record/attribute_methods.rb", __FILE__)
|
16
|
+
autoload :EmbeddedDocument, File.expand_path("../json_record/embedded_document.rb", __FILE__)
|
17
|
+
autoload :EmbeddedDocumentArray, File.expand_path("../json_record/embedded_document_array.rb", __FILE__)
|
18
|
+
autoload :FieldDefinition, File.expand_path("../json_record/field_definition.rb", __FILE__)
|
19
|
+
autoload :JsonField, File.expand_path("../json_record/json_field.rb", __FILE__)
|
20
|
+
autoload :Schema, File.expand_path("../json_record/schema.rb", __FILE__)
|
21
|
+
autoload :Serialized, File.expand_path("../json_record/serialized.rb", __FILE__)
|
16
22
|
end
|
17
23
|
|
18
|
-
ActiveRecord::Base.send(:include, JsonRecord::Serialized)
|
24
|
+
ActiveRecord::Base.send(:include, JsonRecord::Serialized)
|
@@ -37,7 +37,7 @@ module JsonRecord
|
|
37
37
|
if changes.include?(field.name)
|
38
38
|
changes.delete(field.name) if converted_value == changes[field.name]
|
39
39
|
else
|
40
|
-
old_value = (old_value.clone rescue old_value) unless old_value.nil?
|
40
|
+
old_value = (old_value.clone rescue old_value) unless old_value.nil? || old_value.is_a?(Numeric) || old_value.is_a?(Symbol) || old_value.is_a?(TrueClass) || old_value.is_a?(FalseClass)
|
41
41
|
changes[field.name] = old_value
|
42
42
|
end
|
43
43
|
end
|
@@ -16,8 +16,8 @@ module JsonRecord
|
|
16
16
|
base.alias_method_chain(:valid?, :callbacks)
|
17
17
|
base.extend ValidationCallbacks
|
18
18
|
|
19
|
-
base.
|
20
|
-
base.
|
19
|
+
base.class_attribute :schema
|
20
|
+
base.schema = Schema.new(base, nil)
|
21
21
|
end
|
22
22
|
|
23
23
|
module ValidationCallbacks #:nodoc:
|
@@ -79,6 +79,10 @@ module JsonRecord
|
|
79
79
|
@json_attributes.to_json(*args)
|
80
80
|
end
|
81
81
|
|
82
|
+
def to_hash
|
83
|
+
@json_attributes
|
84
|
+
end
|
85
|
+
|
82
86
|
def eql? (val)
|
83
87
|
val.class == self.class && val.attributes == attributes && val.parent == parent
|
84
88
|
end
|
@@ -87,6 +91,10 @@ module JsonRecord
|
|
87
91
|
eql?(val)
|
88
92
|
end
|
89
93
|
|
94
|
+
def equal? (val)
|
95
|
+
eql?(val)
|
96
|
+
end
|
97
|
+
|
90
98
|
def hash
|
91
99
|
attributes.hash + parent.hash
|
92
100
|
end
|
@@ -22,7 +22,13 @@ module JsonRecord
|
|
22
22
|
|
23
23
|
# Get the default value.
|
24
24
|
def default
|
25
|
-
|
25
|
+
if @default.nil?
|
26
|
+
nil
|
27
|
+
elsif @default.is_a?(Numeric) || @default.is_a?(Symbol) || @default.is_a?(TrueClass) || @default.is_a?(FalseClass)
|
28
|
+
@default
|
29
|
+
else
|
30
|
+
@default.dup rescue @default
|
31
|
+
end
|
26
32
|
end
|
27
33
|
|
28
34
|
# Indicates the field is multivalued.
|
@@ -72,6 +78,8 @@ module JsonRecord
|
|
72
78
|
elsif @type == Hash
|
73
79
|
raise ArgumentError.new("#{name} must be a Hash") unless val.is_a?(Hash)
|
74
80
|
return val
|
81
|
+
elsif @type == BigDecimal
|
82
|
+
return BigDecimal.new(val.to_s)
|
75
83
|
else
|
76
84
|
if val.is_a?(@type)
|
77
85
|
val
|
@@ -6,10 +6,12 @@ module JsonRecord
|
|
6
6
|
|
7
7
|
def initialize (record, name, schemas)
|
8
8
|
@record = record
|
9
|
-
@name = name
|
9
|
+
@name = name.to_s
|
10
10
|
@schemas = schemas
|
11
11
|
@attributes = nil
|
12
|
-
|
12
|
+
json_column = record.class.columns_hash[@name]
|
13
|
+
raise ArgumentError.new("column #{name} does not exist in #{table_name}") unless json_column
|
14
|
+
@compressed = json_column.type == :binary
|
13
15
|
end
|
14
16
|
|
15
17
|
def serialize
|
@@ -11,16 +11,16 @@ module JsonRecord
|
|
11
11
|
# can have multiple fields that store JSON documents if necessary.
|
12
12
|
def serialize_to_json (field_name, &block)
|
13
13
|
unless include?(InstanceMethods)
|
14
|
-
|
14
|
+
class_attribute :json_serialized_fields
|
15
15
|
extend ClassMethods
|
16
16
|
include InstanceMethods
|
17
17
|
end
|
18
18
|
field_name = field_name.to_s
|
19
|
-
self.json_serialized_fields
|
19
|
+
self.json_serialized_fields = json_serialized_fields ? json_serialized_fields.clone : {}
|
20
20
|
schema = Schema.new(self, field_name)
|
21
21
|
field_schemas = json_serialized_fields[field_name]
|
22
22
|
if field_schemas
|
23
|
-
field_schemas = field_schemas.
|
23
|
+
field_schemas = field_schemas.clone
|
24
24
|
else
|
25
25
|
field_schemas = []
|
26
26
|
end
|
@@ -55,6 +55,10 @@ module JsonRecord
|
|
55
55
|
base.alias_method_chain :write_attribute, :serialized_json
|
56
56
|
base.alias_method_chain :read_attribute_before_type_cast, :serialized_json
|
57
57
|
base.alias_method_chain :attributes_before_type_cast, :serialized_json
|
58
|
+
# Alias method chain doesn't work on [] methods and these are aliased directly in Rails 3.1
|
59
|
+
base.send :alias_method, :[], :read_attribute_with_serialized_json
|
60
|
+
base.send :alias_method, :[]=, :write_attribute_with_serialized_json
|
61
|
+
base.send :public, :[], :[]=
|
58
62
|
end
|
59
63
|
|
60
64
|
# Get the JsonField objects for the record.
|
@@ -93,6 +97,8 @@ module JsonRecord
|
|
93
97
|
json_attributes_before_type_cast.merge(attributes_before_type_cast_without_serialized_json)
|
94
98
|
end
|
95
99
|
|
100
|
+
protected
|
101
|
+
|
96
102
|
def read_attribute_with_serialized_json (name)
|
97
103
|
name = name.to_s
|
98
104
|
json_field, field_definition = self.class.json_field_definition(name)
|
@@ -113,8 +119,6 @@ module JsonRecord
|
|
113
119
|
end
|
114
120
|
end
|
115
121
|
|
116
|
-
protected
|
117
|
-
|
118
122
|
# Returns a hash of all the JsonField objects merged together.
|
119
123
|
def json_attributes
|
120
124
|
attrs = {}
|
data/spec/serialized_spec.rb
CHANGED
@@ -94,6 +94,12 @@ describe JsonRecord::Serialized do
|
|
94
94
|
model.strings.should == ["a", "b"]
|
95
95
|
end
|
96
96
|
|
97
|
+
it "should convert values to BigDecimal" do
|
98
|
+
model = JsonRecord::Test::Model.new
|
99
|
+
model.price = '5.55'
|
100
|
+
model.price.should == BigDecimal.new('5.55')
|
101
|
+
end
|
102
|
+
|
97
103
|
it "should convert a hash to an embedded document" do
|
98
104
|
model = JsonRecord::Test::Model.new
|
99
105
|
model.primary_trait = {:name => "thing", :value => "stuff"}
|
@@ -142,9 +148,12 @@ describe JsonRecord::Serialized do
|
|
142
148
|
end
|
143
149
|
|
144
150
|
it "should initialize json attributes with blank values" do
|
145
|
-
JsonRecord::Test::Model.new.attributes
|
151
|
+
json_attributes = JsonRecord::Test::Model.new.attributes
|
152
|
+
json_attributes.delete('id').should == nil
|
153
|
+
json_attributes.should == {
|
146
154
|
"name"=>nil,
|
147
155
|
"price"=>nil,
|
156
|
+
"ratio"=>nil,
|
148
157
|
"string_field"=>nil,
|
149
158
|
"verified_at"=>nil,
|
150
159
|
"viewed_at"=>nil,
|
@@ -154,6 +163,7 @@ describe JsonRecord::Serialized do
|
|
154
163
|
"field_4"=>nil,
|
155
164
|
"field_5"=>nil,
|
156
165
|
"unit_price"=>nil,
|
166
|
+
"unit_ratio"=>nil,
|
157
167
|
"traits"=>[],
|
158
168
|
"value"=>0,
|
159
169
|
"strings"=>[],
|
@@ -194,7 +204,7 @@ describe JsonRecord::Serialized do
|
|
194
204
|
|
195
205
|
it "should reserialize json attributes into a JSON field" do
|
196
206
|
model = JsonRecord::Test::Model.new(:name => "test name", :value => 1)
|
197
|
-
model.save!
|
207
|
+
model.save! rescue puts $@.join("\n")
|
198
208
|
model = JsonRecord::Test::Model.find(model.id)
|
199
209
|
ActiveSupport::JSON.decode(model.json).should == {"name" => "test name", "value" => 1}
|
200
210
|
model.value = 2
|
@@ -479,4 +489,12 @@ describe JsonRecord::Serialized do
|
|
479
489
|
model.unit_price = 1.2253
|
480
490
|
model.unit_price.should == 1.23
|
481
491
|
end
|
492
|
+
|
493
|
+
it "should blow up if the json column doesn't exist" do
|
494
|
+
lambda{JsonRecord::Test::Broken.new(:name => "Test", :value => "Moo")}.should raise_error
|
495
|
+
end
|
496
|
+
|
497
|
+
it "should blow up if trying to set a json attribute hasn't been defined" do
|
498
|
+
lambda{model = JsonRecord::Test::Model.new(:undefined_attribute => "what?")}.should raise_error
|
499
|
+
end
|
482
500
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
|
3
|
-
active_record_version = ENV["ACTIVE_RECORD_VERSION"] || [">=
|
3
|
+
active_record_version = ENV["ACTIVE_RECORD_VERSION"] || [">=3.0.0"]
|
4
4
|
active_record_version = [active_record_version] unless active_record_version.is_a?(Array)
|
5
5
|
gem 'activerecord', *active_record_version
|
6
6
|
|
7
|
-
require 'spec'
|
8
7
|
require 'active_record'
|
9
8
|
puts "Testing Against ActiveRecord #{ActiveRecord::VERSION::STRING}"
|
10
9
|
|
11
|
-
|
12
|
-
|
10
|
+
ActiveRecord::Base.establish_connection("adapter" => "sqlite3", "database" => ":memory:")
|
11
|
+
|
12
|
+
require File.expand_path("../../lib/json_record.rb", __FILE__)
|
13
|
+
require File.expand_path("../test_models.rb", __FILE__)
|
data/spec/test_models.rb
CHANGED
@@ -1,11 +1,6 @@
|
|
1
1
|
module JsonRecord
|
2
2
|
module Test
|
3
3
|
def self.create_tables
|
4
|
-
db_dir = File.expand_path(File.join(__FILE__, '..', 'tmp'))
|
5
|
-
Dir.mkdir(db_dir) unless File.exist?(db_dir)
|
6
|
-
db = File.join(db_dir, 'test_JsonRecord.sqlite3')
|
7
|
-
Model.establish_connection("adapter" => "sqlite3", "database" => db)
|
8
|
-
|
9
4
|
Model.connection.create_table(:models) do |t|
|
10
5
|
t.text :json
|
11
6
|
t.binary :compressed_json
|
@@ -20,11 +15,7 @@ module JsonRecord
|
|
20
15
|
end
|
21
16
|
|
22
17
|
def self.drop_tables
|
23
|
-
db_dir = File.expand_path(File.join(__FILE__, '..', 'tmp'))
|
24
|
-
db = File.join(db_dir, 'test_JsonRecord.sqlite3')
|
25
18
|
Model.connection.disconnect!
|
26
|
-
File.delete(db) if File.exist?(db)
|
27
|
-
Dir.delete(db_dir) if File.exist?(db_dir) and Dir.entries(db_dir).reject{|f| f.match(/^\.+$/)}.empty?
|
28
19
|
end
|
29
20
|
|
30
21
|
class Trait
|
@@ -59,6 +50,7 @@ module JsonRecord
|
|
59
50
|
schema.key :name, String, :required => true, :length => 15
|
60
51
|
schema.key :value, Integer, :default => 0
|
61
52
|
schema.key :price, Float
|
53
|
+
schema.key :ratio, BigDecimal
|
62
54
|
schema.key :verified, Boolean
|
63
55
|
schema.key :when, Date
|
64
56
|
schema.key :verified_at, Time
|
@@ -77,6 +69,7 @@ module JsonRecord
|
|
77
69
|
schema.key :field_4, :length => (4..15)
|
78
70
|
schema.key :field_5, :length => {:minimum => 5}
|
79
71
|
schema.key :unit_price, Float
|
72
|
+
schema.key :unit_ratio, BigDecimal
|
80
73
|
end
|
81
74
|
|
82
75
|
def unit_price
|
@@ -97,5 +90,14 @@ module JsonRecord
|
|
97
90
|
schema.key :another_field
|
98
91
|
end
|
99
92
|
end
|
93
|
+
|
94
|
+
class Broken < ActiveRecord::Base
|
95
|
+
set_table_name :models
|
96
|
+
|
97
|
+
serialize_to_json(:no_such_column) do |schema|
|
98
|
+
schema.key :name, String
|
99
|
+
schema.key :value, String
|
100
|
+
end
|
101
|
+
end
|
100
102
|
end
|
101
103
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
|
11
|
-
version: 1.1.0.b6
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
12
11
|
platform: ruby
|
13
12
|
authors:
|
14
13
|
- Brian Durand
|
@@ -16,7 +15,7 @@ autorequire:
|
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
17
|
|
19
|
-
date:
|
18
|
+
date: 2011-07-07 00:00:00 -05:00
|
20
19
|
default_executable:
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
@@ -27,13 +26,12 @@ dependencies:
|
|
27
26
|
requirements:
|
28
27
|
- - ">="
|
29
28
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
29
|
+
hash: 7
|
31
30
|
segments:
|
32
31
|
- 3
|
33
32
|
- 0
|
34
33
|
- 0
|
35
|
-
|
36
|
-
version: 3.0.0.beta2
|
34
|
+
version: 3.0.0
|
37
35
|
type: :runtime
|
38
36
|
version_requirements: *id001
|
39
37
|
- !ruby/object:Gem::Dependency
|
@@ -44,12 +42,12 @@ dependencies:
|
|
44
42
|
requirements:
|
45
43
|
- - ">="
|
46
44
|
- !ruby/object:Gem::Version
|
47
|
-
hash:
|
45
|
+
hash: 15
|
48
46
|
segments:
|
49
|
-
-
|
50
|
-
- 3
|
47
|
+
- 2
|
51
48
|
- 0
|
52
|
-
|
49
|
+
- 0
|
50
|
+
version: 2.0.0
|
53
51
|
type: :development
|
54
52
|
version_requirements: *id002
|
55
53
|
- !ruby/object:Gem::Dependency
|
@@ -73,15 +71,12 @@ executables: []
|
|
73
71
|
extensions: []
|
74
72
|
|
75
73
|
extra_rdoc_files:
|
74
|
+
- MIT_LICENSE
|
76
75
|
- README.rdoc
|
77
76
|
files:
|
78
|
-
- CHANGE_LOG
|
79
77
|
- MIT_LICENSE
|
80
78
|
- README.rdoc
|
81
79
|
- Rakefile
|
82
|
-
- VERSION
|
83
|
-
- init.rb
|
84
|
-
- json_record.gemspec
|
85
80
|
- lib/json_record.rb
|
86
81
|
- lib/json_record/attribute_methods.rb
|
87
82
|
- lib/json_record/embedded_document.rb
|
@@ -103,6 +98,8 @@ licenses: []
|
|
103
98
|
post_install_message:
|
104
99
|
rdoc_options:
|
105
100
|
- --charset=UTF-8
|
101
|
+
- --main
|
102
|
+
- README.rdoc
|
106
103
|
require_paths:
|
107
104
|
- lib
|
108
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -117,25 +114,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
115
|
none: false
|
119
116
|
requirements:
|
120
|
-
- - "
|
117
|
+
- - ">="
|
121
118
|
- !ruby/object:Gem::Version
|
122
|
-
hash:
|
119
|
+
hash: 3
|
123
120
|
segments:
|
124
|
-
-
|
125
|
-
|
126
|
-
- 1
|
127
|
-
version: 1.3.1
|
121
|
+
- 0
|
122
|
+
version: "0"
|
128
123
|
requirements: []
|
129
124
|
|
130
125
|
rubyforge_project:
|
131
|
-
rubygems_version: 1.
|
126
|
+
rubygems_version: 1.5.2
|
132
127
|
signing_key:
|
133
128
|
specification_version: 3
|
134
129
|
summary: ActiveRecord support for mapping complex documents in a single RDBMS row via JSON serialization.
|
135
|
-
test_files:
|
136
|
-
|
137
|
-
- spec/embedded_document_spec.rb
|
138
|
-
- spec/field_definition_spec.rb
|
139
|
-
- spec/serialized_spec.rb
|
140
|
-
- spec/spec_helper.rb
|
141
|
-
- spec/test_models.rb
|
130
|
+
test_files: []
|
131
|
+
|
data/CHANGE_LOG
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
1.0.0
|
2
|
-
- Initial release
|
3
|
-
|
4
|
-
1.0.1
|
5
|
-
- Fixed bug where embedded documents couldn't reference the schema until a field was defined
|
6
|
-
|
7
|
-
1.0.2
|
8
|
-
- Changed EmbeddedDocument to be a module instead of a class to fix inheritance problem with validations
|
9
|
-
- Remove key and many methods from EmbeddedDocument in favor of always calling the schema
|
10
|
-
|
11
|
-
1.0.3
|
12
|
-
- Added before and after validation callbacks on EmbeddedDocument
|
13
|
-
- Fixed bug where fields couldn't be set to false
|
14
|
-
|
15
|
-
1.0.4
|
16
|
-
- Fixed bug with tracking changes when initializing an EmbeddedDocument.
|
17
|
-
- Removed tracking changes of keys that are EmbeddedDocuments
|
18
|
-
|
19
|
-
1.0.5
|
20
|
-
- Fixed bug with initializing new EmbeddedDocumentArray with the proper parent when there is no data to deserialize.
|
21
|
-
|
22
|
-
1.0.6
|
23
|
-
- Allow EmbeddedDocument.new to call all accessors and not just those defined in the JSON schema.
|
24
|
-
- Allow getting and setting json attributes with [] and []=
|
25
|
-
|
26
|
-
1.0.7
|
27
|
-
- Added attributes= to EmbeddedDocument for mass attribute assignment
|
28
|
-
- Changed deserialized Json values to go through setter methods instead of being directly set
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.1.0.b6
|
data/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'json_record'
|
data/json_record.gemspec
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{json_record}
|
8
|
-
s.version = "1.1.0.b6"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Brian Durand"]
|
12
|
-
s.date = %q{2010-05-25}
|
13
|
-
s.email = %q{brian@embellishedvisions.com}
|
14
|
-
s.extra_rdoc_files = [
|
15
|
-
"README.rdoc"
|
16
|
-
]
|
17
|
-
s.files = [
|
18
|
-
"CHANGE_LOG",
|
19
|
-
"MIT_LICENSE",
|
20
|
-
"README.rdoc",
|
21
|
-
"Rakefile",
|
22
|
-
"VERSION",
|
23
|
-
"init.rb",
|
24
|
-
"json_record.gemspec",
|
25
|
-
"lib/json_record.rb",
|
26
|
-
"lib/json_record/attribute_methods.rb",
|
27
|
-
"lib/json_record/embedded_document.rb",
|
28
|
-
"lib/json_record/embedded_document_array.rb",
|
29
|
-
"lib/json_record/field_definition.rb",
|
30
|
-
"lib/json_record/json_field.rb",
|
31
|
-
"lib/json_record/schema.rb",
|
32
|
-
"lib/json_record/serialized.rb",
|
33
|
-
"spec/embedded_document_array_spec.rb",
|
34
|
-
"spec/embedded_document_spec.rb",
|
35
|
-
"spec/field_definition_spec.rb",
|
36
|
-
"spec/serialized_spec.rb",
|
37
|
-
"spec/spec_helper.rb",
|
38
|
-
"spec/test_models.rb"
|
39
|
-
]
|
40
|
-
s.homepage = %q{http://github.com/bdurand/json_record}
|
41
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
42
|
-
s.require_paths = ["lib"]
|
43
|
-
s.rubygems_version = %q{1.3.7}
|
44
|
-
s.summary = %q{ActiveRecord support for mapping complex documents in a single RDBMS row via JSON serialization.}
|
45
|
-
s.test_files = [
|
46
|
-
"spec/embedded_document_array_spec.rb",
|
47
|
-
"spec/embedded_document_spec.rb",
|
48
|
-
"spec/field_definition_spec.rb",
|
49
|
-
"spec/serialized_spec.rb",
|
50
|
-
"spec/spec_helper.rb",
|
51
|
-
"spec/test_models.rb"
|
52
|
-
]
|
53
|
-
|
54
|
-
if s.respond_to? :specification_version then
|
55
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
56
|
-
s.specification_version = 3
|
57
|
-
|
58
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
59
|
-
s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0.beta2"])
|
60
|
-
s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
|
61
|
-
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
62
|
-
else
|
63
|
-
s.add_dependency(%q<activerecord>, [">= 3.0.0.beta2"])
|
64
|
-
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
65
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
66
|
-
end
|
67
|
-
else
|
68
|
-
s.add_dependency(%q<activerecord>, [">= 3.0.0.beta2"])
|
69
|
-
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
70
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|