datts_right 0.0.10 → 0.0.11
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/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: []
|