composite_primary_keys 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ == 1.0.7 2008-08-12
2
+
3
+ * fix for the last fix -- when has_many is composite and belongs_to is single
4
+
1
5
  == 1.0.6 2008-08-06
2
6
 
3
7
  * fix associations create
@@ -123,4 +127,4 @@
123
127
  * id sets: Foo.find(2,1),
124
128
  * lists of id sets: Foo.find([2,1], [7,3], [8,12]),
125
129
  * and even stringified versions of the above:
126
- * Foo.find '2,1' or Foo.find '2,1;7,3'
130
+ * Foo.find '2,1' or Foo.find '2,1;7,3'
@@ -281,14 +281,15 @@ module ActiveRecord::Associations
281
281
  keys_ids = [keys, quoted_ids].transpose
282
282
  keys_ids.collect {|key, id| "(#{table_name}.#{key} = #{id})"}.join(' AND ')
283
283
  end
284
-
284
+
285
285
  def set_belongs_to_association_for(record)
286
286
  if @reflection.options[:as]
287
- raise 'polymorphic joins are not supported by composite_primary_keys'
287
+ record["#{@reflection.options[:as]}_id"] = @owner.id unless @owner.new_record?
288
+ record["#{@reflection.options[:as]}_type"] = @owner.class.base_class.name.to_s
288
289
  else
289
- key_values = @reflection.primary_key_name.to_s.split(CompositePrimaryKeys::ID_SEP).zip(@owner.id)
290
+ key_values = @reflection.primary_key_name.to_s.split(CompositePrimaryKeys::ID_SEP).zip([@owner.id].flatten)
290
291
  key_values.each{|kv| record[kv.first] = kv.last} unless @owner.new_record?
291
- end
292
+ end
292
293
  end
293
294
  end
294
295
 
@@ -2,7 +2,7 @@ module CompositePrimaryKeys
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- TINY = 6
5
+ TINY = 7
6
6
  STRING = [MAJOR, MINOR, TINY].join('.')
7
7
  end
8
8
  end
@@ -58,4 +58,11 @@ class TestCreate < Test::Unit::TestCase
58
58
  assert_equal(suburb.city_id, street.city_id)
59
59
  assert_equal(suburb.suburb_id, street.suburb_id)
60
60
  end
61
- end
61
+
62
+ def test_create_on_association_when_belongs_to_is_single_key
63
+ rt = ReferenceType.find(:first)
64
+ rt.reference_codes.create(:reference_type_id => 1234, :reference_code => 4321, :code_label => 'foo', :abbreviation => 'bar')
65
+ rc = ReferenceCode.find_by_reference_code(4321)
66
+ assert_equal(rc.reference_type_id, rt.reference_type_id)
67
+ end
68
+ end
Binary file
@@ -33,7 +33,7 @@
33
33
  <h1>Composite Primary Keys</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/compositekeys"; return false'>
35
35
  Get Version
36
- <a href="http://rubyforge.org/projects/compositekeys" class="numbers">1.0.5</a>
36
+ <a href="http://rubyforge.org/projects/compositekeys" class="numbers">1.0.6</a>
37
37
  </div>
38
38
  <h1>&#x2192; Ruby on Rails</h1>
39
39
 
@@ -1,3 +1,3 @@
1
1
  // Announcement JS file
2
- var version = "1.0.5";
2
+ var version = "1.0.6";
3
3
  MagicAnnouncement.show('compositekeys', version);
@@ -1,4 +1,4 @@
1
1
  // Version JS file
2
- var version = "1.0.5";
2
+ var version = "1.0.6";
3
3
 
4
4
  document.write(" - " + version);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: composite_primary_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr Nic Williams
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-06 00:00:00 -05:00
12
+ date: 2008-08-12 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency