datts_right 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/datts_right.gemspec +19 -1
- data/lib/datts_right/dynamic_attribute.rb +2 -8
- data/spec/datt_spec.rb +0 -12
- data/spec/datts_right_spec.rb +5 -16
- metadata +93 -3
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.11
|
data/datts_right.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{datts_right}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.11"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ramon Tayag"]
|
@@ -182,6 +182,12 @@ Gem::Specification.new do |s|
|
|
182
182
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
183
183
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
184
184
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
185
|
+
s.add_development_dependency(%q<autotest>, [">= 0"])
|
186
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
187
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
188
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
189
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
190
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
185
191
|
else
|
186
192
|
s.add_dependency(%q<datts_right>, [">= 0"])
|
187
193
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
@@ -312,6 +318,12 @@ Gem::Specification.new do |s|
|
|
312
318
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
313
319
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
314
320
|
s.add_dependency(%q<rcov>, [">= 0"])
|
321
|
+
s.add_dependency(%q<autotest>, [">= 0"])
|
322
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
323
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
324
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
325
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
326
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
315
327
|
end
|
316
328
|
else
|
317
329
|
s.add_dependency(%q<datts_right>, [">= 0"])
|
@@ -443,6 +455,12 @@ Gem::Specification.new do |s|
|
|
443
455
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
444
456
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
445
457
|
s.add_dependency(%q<rcov>, [">= 0"])
|
458
|
+
s.add_dependency(%q<autotest>, [">= 0"])
|
459
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
460
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
461
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
462
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
463
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
446
464
|
end
|
447
465
|
end
|
448
466
|
|
@@ -10,15 +10,9 @@ class DynamicAttribute < ActiveRecord::Base
|
|
10
10
|
def value=(v)
|
11
11
|
object_type = self.class.attr_type?(v)
|
12
12
|
|
13
|
-
|
14
|
-
# and it's text to string or vice versa
|
15
|
-
interchangeable_types = %w(text string)
|
16
|
-
#puts "#{attr_key} is currently a #{self.object_type}, and we wanna make it a #{object_type}"
|
17
|
-
if !new_record? && interchangeable_types.include?(self.object_type) && interchangeable_types.include?(object_type) && self.object_type != object_type
|
18
|
-
#puts "#{attr_key} is not new, and we're setting object_type to #{object_type}"
|
19
|
-
self.object_type = object_type
|
13
|
+
if self.object_type == object_type # has to be the same kind of object
|
20
14
|
send "#{self.class.attr_column(v)}=", v
|
21
|
-
elsif
|
15
|
+
elsif v.nil?
|
22
16
|
send "#{self.object_type}_value=", v
|
23
17
|
end
|
24
18
|
end
|
data/spec/datt_spec.rb
CHANGED
@@ -5,16 +5,4 @@ describe DynamicAttribute do
|
|
5
5
|
reset_database
|
6
6
|
@page = Page.create
|
7
7
|
end
|
8
|
-
|
9
|
-
it "should allow transferring between String and Text" do
|
10
|
-
@page.add_dynamic_attribute(:foo, "string")
|
11
|
-
@page.write_dynamic_attribute :foo, "this is a string"
|
12
|
-
@page.save
|
13
|
-
@page.write_dynamic_attribute :foo, "t"*300
|
14
|
-
@page.save
|
15
|
-
@page.dynamic_attributes.find_by_attr_key("foo").object_type.should == "text"
|
16
|
-
@page.write_dynamic_attribute :foo, "this is a string again"
|
17
|
-
@page.save
|
18
|
-
@page.dynamic_attributes.find_by_attr_key("foo").object_type.should == "string"
|
19
|
-
end
|
20
8
|
end
|
data/spec/datts_right_spec.rb
CHANGED
@@ -15,6 +15,7 @@ describe DattsRight do
|
|
15
15
|
@page.add_dynamic_attribute(:rocks, "string")
|
16
16
|
@page.dynamic_attribute_details(:rocks).value.should be_nil
|
17
17
|
@page.add_dynamic_attribute(:rock, "string", "123")
|
18
|
+
@page.read_datt(:rock).should == "123"
|
18
19
|
@page.dynamic_attribute_details(:rock).value.should == "123"
|
19
20
|
end
|
20
21
|
|
@@ -33,11 +34,6 @@ describe DattsRight do
|
|
33
34
|
@page.add_dynamic_attribute(:name, "text")
|
34
35
|
@page.name.should == "juno"
|
35
36
|
end
|
36
|
-
|
37
|
-
it "should still work after reloading" do
|
38
|
-
@page.add_dynamic_attribute(:rocks, "string")
|
39
|
-
@page = Page.last
|
40
|
-
end
|
41
37
|
end
|
42
38
|
|
43
39
|
describe ".remove_dynamic_attribute(attr_key)" do
|
@@ -60,13 +56,6 @@ describe DattsRight do
|
|
60
56
|
end
|
61
57
|
end
|
62
58
|
|
63
|
-
describe ".dynamic_columns(reload)" do
|
64
|
-
it "should return an array of symbols of the available dynamic columns" do
|
65
|
-
@page.add_dynamic_attribute(:rocks, "string")
|
66
|
-
@page.dynamic_attribute?(:rocks).should be_true
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
59
|
it "should not allow arbitrary creation of attributes" do
|
71
60
|
lambda {
|
72
61
|
@page.some_field = "woot"
|
@@ -417,12 +406,12 @@ describe DattsRight do
|
|
417
406
|
|
418
407
|
describe "when loading from database" do
|
419
408
|
it "should load the dynamic attributes for use" do
|
420
|
-
@page.
|
421
|
-
@page.
|
409
|
+
@page.add_datt(:body, "text")
|
410
|
+
@page.write_datt(:body, "t"*300)
|
422
411
|
@page.save
|
423
412
|
@page = Page.last
|
424
|
-
@page.read_datt(:
|
425
|
-
@page.dynamic_attribute_details(:
|
413
|
+
@page.read_datt(:body).should == "t"*300
|
414
|
+
@page.dynamic_attribute_details(:body).value.should == @page.read_datt(:body)
|
426
415
|
end
|
427
416
|
end
|
428
417
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datts_right
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 11
|
10
|
+
version: 0.0.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ramon Tayag
|
@@ -1954,6 +1954,96 @@ dependencies:
|
|
1954
1954
|
name: rcov
|
1955
1955
|
version_requirements: *id129
|
1956
1956
|
prerelease: false
|
1957
|
+
- !ruby/object:Gem::Dependency
|
1958
|
+
type: :development
|
1959
|
+
requirement: &id130 !ruby/object:Gem::Requirement
|
1960
|
+
none: false
|
1961
|
+
requirements:
|
1962
|
+
- - ">="
|
1963
|
+
- !ruby/object:Gem::Version
|
1964
|
+
hash: 3
|
1965
|
+
segments:
|
1966
|
+
- 0
|
1967
|
+
version: "0"
|
1968
|
+
name: autotest
|
1969
|
+
version_requirements: *id130
|
1970
|
+
prerelease: false
|
1971
|
+
- !ruby/object:Gem::Dependency
|
1972
|
+
type: :development
|
1973
|
+
requirement: &id131 !ruby/object:Gem::Requirement
|
1974
|
+
none: false
|
1975
|
+
requirements:
|
1976
|
+
- - ">="
|
1977
|
+
- !ruby/object:Gem::Version
|
1978
|
+
hash: 3
|
1979
|
+
segments:
|
1980
|
+
- 0
|
1981
|
+
version: "0"
|
1982
|
+
name: sqlite3
|
1983
|
+
version_requirements: *id131
|
1984
|
+
prerelease: false
|
1985
|
+
- !ruby/object:Gem::Dependency
|
1986
|
+
type: :development
|
1987
|
+
requirement: &id132 !ruby/object:Gem::Requirement
|
1988
|
+
none: false
|
1989
|
+
requirements:
|
1990
|
+
- - ~>
|
1991
|
+
- !ruby/object:Gem::Version
|
1992
|
+
hash: 3
|
1993
|
+
segments:
|
1994
|
+
- 2
|
1995
|
+
- 3
|
1996
|
+
- 0
|
1997
|
+
version: 2.3.0
|
1998
|
+
name: rspec
|
1999
|
+
version_requirements: *id132
|
2000
|
+
prerelease: false
|
2001
|
+
- !ruby/object:Gem::Dependency
|
2002
|
+
type: :development
|
2003
|
+
requirement: &id133 !ruby/object:Gem::Requirement
|
2004
|
+
none: false
|
2005
|
+
requirements:
|
2006
|
+
- - ~>
|
2007
|
+
- !ruby/object:Gem::Version
|
2008
|
+
hash: 23
|
2009
|
+
segments:
|
2010
|
+
- 1
|
2011
|
+
- 0
|
2012
|
+
- 0
|
2013
|
+
version: 1.0.0
|
2014
|
+
name: bundler
|
2015
|
+
version_requirements: *id133
|
2016
|
+
prerelease: false
|
2017
|
+
- !ruby/object:Gem::Dependency
|
2018
|
+
type: :development
|
2019
|
+
requirement: &id134 !ruby/object:Gem::Requirement
|
2020
|
+
none: false
|
2021
|
+
requirements:
|
2022
|
+
- - ~>
|
2023
|
+
- !ruby/object:Gem::Version
|
2024
|
+
hash: 7
|
2025
|
+
segments:
|
2026
|
+
- 1
|
2027
|
+
- 5
|
2028
|
+
- 2
|
2029
|
+
version: 1.5.2
|
2030
|
+
name: jeweler
|
2031
|
+
version_requirements: *id134
|
2032
|
+
prerelease: false
|
2033
|
+
- !ruby/object:Gem::Dependency
|
2034
|
+
type: :development
|
2035
|
+
requirement: &id135 !ruby/object:Gem::Requirement
|
2036
|
+
none: false
|
2037
|
+
requirements:
|
2038
|
+
- - ">="
|
2039
|
+
- !ruby/object:Gem::Version
|
2040
|
+
hash: 3
|
2041
|
+
segments:
|
2042
|
+
- 0
|
2043
|
+
version: "0"
|
2044
|
+
name: rcov
|
2045
|
+
version_requirements: *id135
|
2046
|
+
prerelease: false
|
1957
2047
|
description: Creates a separate table that saves all your dynamic attributes.
|
1958
2048
|
email: ramon@tayag.net
|
1959
2049
|
executables: []
|