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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- datts_right (0.0.9)
4
+ datts_right (0.0.10)
5
5
  datts_right
6
6
  rails (>= 3.0.0)
7
7
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.10
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.10"
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
- # only allow object_type changes if this is NOT a new record
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 self.object_type == object_type # has to be the same kind of object
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
@@ -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.add_dynamic_attribute(:price, "integer")
421
- @page.write_dynamic_attribute(:price, 200)
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(:price).should == 200
425
- @page.dynamic_attribute_details(:price).value.should == 200
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: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 10
10
- version: 0.0.10
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: []