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 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: []