rhodes-framework 1.0.0 → 1.0.1

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/lib/rhodes.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  module Rhodes
2
2
  unless defined? Rhodes::VERSION
3
- VERSION = '1.0.0'
3
+ VERSION = '1.0.1'
4
4
  end
5
5
  unless defined? Rhodes::DBVERSION
6
- DBVERSION = '1.0.0'
6
+ DBVERSION = '1.0.1'
7
7
  end
8
8
 
9
9
  end
@@ -91,11 +91,21 @@ module Rhom
91
91
  def string_from_key_vals(values, delim)
92
92
  vals = ""
93
93
  values.each do |key,value|
94
- val = value.is_a?(String) ? "'#{value}'" : "#{value}"
95
- vals << " #{key} = #{val}#{delim}"
94
+ vals << " #{key} = #{get_value_for_sql_stmt(value)}#{delim}"
96
95
  end
97
96
  vals
98
97
  end
98
+
99
+ # generates a value for sql statement
100
+ def get_value_for_sql_stmt(value)
101
+ if value.is_a?(String)
102
+ "'#{value}'"
103
+ elsif value.nil?
104
+ "NULL"
105
+ else
106
+ "#{value}"
107
+ end
108
+ end
99
109
 
100
110
  # support for select statements
101
111
  # this function takes table name, columns (as a comma-separated list),
@@ -134,7 +144,7 @@ module Rhom
134
144
  vals = ""
135
145
  if table and values
136
146
  values.each do |key,val|
137
- value = val.is_a?(Fixnum) ? "#{val}," : "'#{val}',"
147
+ value = get_value_for_sql_stmt(val)+","
138
148
  cols << "#{key},"
139
149
  vals << value
140
150
  end
@@ -235,7 +235,7 @@ module Rhom
235
235
  # Don't save objects with braces to database
236
236
  val = self.inst_strip_braces(self.send(method.to_sym))
237
237
  # add rows excluding object, source_id and update_type
238
- unless self.method_name_reserved?(method) or val.nil?
238
+ unless self.method_name_reserved?(method)
239
239
  fields = {"source_id"=>self.get_inst_source_id,
240
240
  "object"=>obj,
241
241
  "attrib"=>method,
@@ -263,8 +263,8 @@ module Rhom
263
263
 
264
264
  # if the object's value doesn't match the database record
265
265
  # then we procede with update
266
- if new_val and old_val != new_val
267
- unless self.method_name_reserved?(attrib) or new_val.length == 0
266
+ if old_val != new_val
267
+ unless self.method_name_reserved?(attrib)
268
268
  ::Rhom::RhomDbAdapter::delete_from_table(::Rhom::TABLE_NAME,
269
269
  {"source_id"=>self.get_inst_source_id,
270
270
  "object"=>obj,
data/lib/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module RhodesFramework
2
2
  unless defined? RhodesFramework::VERSION
3
- VERSION = '1.0.0'
3
+ VERSION = '1.0.1'
4
4
  end
5
5
  unless defined? RhodesFramework::DBVERSION
6
- DBVERSION = '1.0.0'
6
+ DBVERSION = '1.0.1'
7
7
  end
8
8
  end
@@ -171,6 +171,28 @@ describe "RhomObjectFactory" do
171
171
  @new_acct.industry.should == "Technology"
172
172
  end
173
173
 
174
+ it "should update an attribute to nil" do
175
+ new_attributes = {"name"=>nil}
176
+ @account = Account.find('44e804f2-4933-4e20-271c-48fcecd9450d')
177
+ @account.update_attributes(new_attributes)
178
+
179
+ @new_acct = Account.find('44e804f2-4933-4e20-271c-48fcecd9450d')
180
+
181
+ @new_acct.name.should be_nil
182
+ @new_acct.industry.should == "Technology"
183
+ end
184
+
185
+ it "should update an attribute to empty string" do
186
+ new_attributes = {"name"=>""}
187
+ @account = Account.find('44e804f2-4933-4e20-271c-48fcecd9450d')
188
+ @account.update_attributes(new_attributes)
189
+
190
+ @new_acct = Account.find('44e804f2-4933-4e20-271c-48fcecd9450d')
191
+
192
+ @new_acct.name.should == ""
193
+ @new_acct.industry.should == "Technology"
194
+ end
195
+
174
196
  it "should store only last updated value for attrib" do
175
197
  new_attributes1 = {"new_name"=>"Mobio Europe"}
176
198
  @account = Account.find('44e804f2-4933-4e20-271c-48fcecd9450d')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhodes-framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rhomobile Dev
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-23 00:00:00 -07:00
12
+ date: 2009-03-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -197,6 +197,6 @@ rubyforge_project: rhodes-framework
197
197
  rubygems_version: 1.3.1
198
198
  signing_key:
199
199
  specification_version: 2
200
- summary: rhodes-framework 1.0.0
200
+ summary: rhodes-framework 1.0.1
201
201
  test_files: []
202
202