baza 0.0.9 → 0.0.10

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.0.10
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "baza"
8
- s.version = "0.0.9"
8
+ s.version = "0.0.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kasper Johansen"]
@@ -6,7 +6,7 @@ class Baza::Driver::Mysql::Columns
6
6
  end
7
7
 
8
8
  #Returns the SQL for this column.
9
- DATA_SQL_ALLOWED_KEYS = [:type, :maxlength, :name, :primarykey, :autoincr, :default, :comment, :after, :first, :storage, :null]
9
+ DATA_SQL_ALLOWED_KEYS = [:type, :maxlength, :name, :primarykey, :autoincr, :default, :comment, :after, :first, :storage, :null, :renames]
10
10
  def data_sql(data)
11
11
  data.each do |key, val|
12
12
  raise "Invalid key: '#{key}' (#{key.class.name})." if !DATA_SQL_ALLOWED_KEYS.include?(key)
@@ -7,7 +7,7 @@ class Baza::Driver::Sqlite3::Columns
7
7
  @args = args
8
8
  end
9
9
 
10
- DATA_SQL_ALLOWED_KEYS = [:name, :type, :maxlength, :autoincr, :primarykey, :null, :default, :default_func, :renames, :after]
10
+ DATA_SQL_ALLOWED_KEYS = [:name, :type, :maxlength, :autoincr, :primarykey, :null, :default, :default_func, :renames, :after, :renames]
11
11
  #Returns SQL for a knjdb-compatible hash.
12
12
  def data_sql(data)
13
13
  data.each do |key, val|
@@ -408,7 +408,7 @@ class Baza::ModelHandler
408
408
 
409
409
  #Searches for an object with the given data. If not found it creates it. Returns the found or created object in the end.
410
410
  def get_or_add(classname, data, args = nil)
411
- obj = self.get_by(classname, data)
411
+ obj = self.get_by(classname, data.clone)
412
412
  obj = self.add(classname, data) if !obj
413
413
  return obj
414
414
  end
@@ -387,6 +387,26 @@ describe "Objects" do
387
387
  $ob.delete_ids(:class => :Person, :ids => ids)
388
388
  end
389
389
 
390
+ it "get_or_add" do
391
+ person1 = $ob.add(:Person, {
392
+ :name => "get_or_add"
393
+ })
394
+
395
+ person2 = $ob.get_or_add(:Person, {
396
+ :name => "get_or_add"
397
+ })
398
+
399
+ person2.id.should eql(person1.id)
400
+ person2[:name].should eql("get_or_add")
401
+
402
+ person3 = $ob.get_or_add(:Person, {
403
+ :name => "get_or_add3"
404
+ })
405
+
406
+ raise "Failure ID was the same" if person3.id == person2.id
407
+ person3[:name].should eql("get_or_add3")
408
+ end
409
+
390
410
  it "should delete the temp database again." do
391
411
  db_path = "#{Knj::Os.tmpdir}/knjrbfw_test_sqlite3.sqlite3"
392
412
  File.unlink(db_path) if File.exists?(db_path)
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: baza
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.9
5
+ version: 0.0.10
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kasper Johansen
@@ -250,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
250
250
  - !ruby/object:Gem::Version
251
251
  segments:
252
252
  - 0
253
- hash: -33240531491757229
253
+ hash: 2079390994227772700
254
254
  version: '0'
255
255
  required_rubygems_version: !ruby/object:Gem::Requirement
256
256
  none: false