composite_primary_keys 0.8.2 → 0.8.3

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.
@@ -1,3 +1,10 @@
1
+ *** 0.8.3 / 2007-5-3
2
+
3
+ + 1 bugfix
4
+ + Explicit reference to ::ActiveRecord::RecordNotFound
5
+ + 1 website addition:
6
+ + Added routing help [Pete Sumskas]
7
+
1
8
  *** 0.8.2 / 2007-4-11
2
9
 
3
10
  + 1 major enhancement:
@@ -25,6 +25,8 @@ test/connections/native_sqlite/connection.rb
25
25
  test/fixtures/article.rb
26
26
  test/fixtures/articles.yml
27
27
  test/fixtures/db_definitions/mysql.sql
28
+ test/fixtures/db_definitions/oracle.drop.sql
29
+ test/fixtures/db_definitions/oracle.sql
28
30
  test/fixtures/db_definitions/postgresql.sql
29
31
  test/fixtures/db_definitions/sqlite.sql
30
32
  test/fixtures/group.rb
data/Rakefile CHANGED
@@ -19,8 +19,8 @@ RUBYFORGE_PROJECT = "compositekeys"
19
19
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
20
20
 
21
21
  REV = nil #File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil
22
- VERSION = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : ""))
23
- CLEAN.include ['**/.*.sw?', '*.gem', '.config']
22
+ VER = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : ""))
23
+ CLEAN.include ['**/.*.sw?', '*.gem', '.config','debug.log','*.db','logfile','.DS_Store']
24
24
  RDOC_OPTS = ['--quiet', '--title', "newgem documentation",
25
25
  "--opname", "index.html",
26
26
  "--line-numbers",
@@ -35,7 +35,7 @@ end
35
35
 
36
36
  # Generate all the Rake tasks
37
37
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
38
- hoe = Hoe.new(GEM_NAME, VERSION) do |p|
38
+ hoe = Hoe.new(GEM_NAME, VER) do |p|
39
39
  p.author = AUTHOR
40
40
  p.description = DESCRIPTION
41
41
  p.email = EMAIL
@@ -303,7 +303,7 @@ module CompositePrimaryKeys
303
303
  if result.size == ids.size
304
304
  ids.size == 1 ? result[0] : result
305
305
  else
306
- raise RecordNotFound, "Couldn't find all #{name.pluralize} with IDs (#{ids_list})#{conditions}"
306
+ raise ::ActiveRecord::RecordNotFound, "Couldn't find all #{name.pluralize} with IDs (#{ids_list})#{conditions}"
307
307
  end
308
308
  end
309
309
 
@@ -2,7 +2,7 @@ module CompositePrimaryKeys
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 8
5
- TINY = 2
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,21 @@
1
+ drop table reference_types;
2
+ drop sequence reference_types_seq;
3
+ drop table reference_codes;
4
+ drop table products;
5
+ drop sequence products_seq;
6
+ drop table tariffs;
7
+ drop table product_tariffs;
8
+ drop table suburbs;
9
+ drop table streets;
10
+ drop sequence streets_seq;
11
+ drop table users;
12
+ drop sequence users_seq;
13
+ drop table articles;
14
+ drop sequence articles_seq;
15
+ drop table readings;
16
+ drop sequence readings_seq;
17
+ drop table groups;
18
+ drop sequence groups_seq;
19
+ drop table memberships;
20
+ drop table membership_statuses;
21
+ drop sequence membership_statuses_seq;
@@ -0,0 +1,111 @@
1
+ create table reference_types (
2
+ reference_type_id number(11) primary key,
3
+ type_label varchar2(50) default null,
4
+ abbreviation varchar2(50) default null,
5
+ description varchar2(50) default null
6
+ );
7
+
8
+ create sequence reference_types_seq
9
+ start with 1000;
10
+
11
+ create table reference_codes (
12
+ reference_type_id number(11),
13
+ reference_code number(11),
14
+ code_label varchar2(50) default null,
15
+ abbreviation varchar2(50) default null,
16
+ description varchar2(50) default null,
17
+ constraint reference_codes_pk primary key(reference_type_id, reference_code)
18
+ );
19
+
20
+ create table products (
21
+ id number(11) primary key,
22
+ name varchar2(50) default null
23
+ );
24
+
25
+ create sequence products_seq
26
+ start with 1000;
27
+
28
+ create table tariffs (
29
+ tariff_id number(11),
30
+ start_date date,
31
+ amount number(11) default null,
32
+ constraint tariffs_pk primary key(tariff_id, start_date)
33
+ );
34
+
35
+ create table product_tariffs (
36
+ product_id number(11),
37
+ tariff_id number(11),
38
+ tariff_start_date date,
39
+ constraint product_tariffs_pk primary key(product_id, tariff_id, tariff_start_date)
40
+ );
41
+
42
+ create table suburbs (
43
+ city_id number(11),
44
+ suburb_id number(11),
45
+ name varchar2(50) not null,
46
+ constraint suburbs_pk primary key(city_id, suburb_id)
47
+ );
48
+
49
+ create table streets (
50
+ id number(11) primary key,
51
+ city_id number(11) not null,
52
+ suburb_id number(11) not null,
53
+ name varchar2(50) not null
54
+ );
55
+
56
+ create sequence streets_seq
57
+ start with 1000;
58
+
59
+ create table users (
60
+ id number(11) primary key,
61
+ name varchar2(50) not null
62
+ );
63
+
64
+ create sequence users_seq
65
+ start with 1000;
66
+
67
+ create table articles (
68
+ id number(11) primary key,
69
+ name varchar2(50) not null
70
+ );
71
+
72
+ create sequence articles_seq
73
+ start with 1000;
74
+
75
+
76
+ create table readings (
77
+ id number(11) primary key,
78
+ user_id number(11) not null,
79
+ article_id number(11) not null,
80
+ rating number(11) not null
81
+ );
82
+
83
+ create sequence readings_seq
84
+ start with 1000;
85
+
86
+
87
+ create table groups (
88
+ id number(11) primary key,
89
+ name varchar2(50) not null
90
+ );
91
+
92
+ create sequence groups_seq
93
+ start with 1000;
94
+
95
+
96
+ create table memberships (
97
+ user_id number(11) not null,
98
+ group_id number(11) not null,
99
+ constraint memberships_pk primary key(user_id, group_id)
100
+ );
101
+
102
+ create table membership_statuses (
103
+ id number(11) primary key,
104
+ user_id number(11) not null,
105
+ group_id number(11) not null,
106
+ status varchar2(50) not null
107
+ );
108
+
109
+ create sequence membership_statuses_seq
110
+ start with 1000;
111
+
@@ -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">0.8.2</a>
36
+ <a href="http://rubyforge.org/projects/compositekeys" class="numbers">0.8.3</a>
37
37
  </div>
38
38
  <h1>&#x2192; Ruby on Rails</h1>
39
39
 
@@ -141,7 +141,7 @@ throughout your application. Just like a normal ActiveRecord.</p>
141
141
  <h2>Other tricks</h2>
142
142
 
143
143
 
144
- <p>Pass a list of composite ids to the <code>#find</code> method</p>
144
+ <h3>Pass a list of composite ids to the <code>#find</code> method</h3>
145
145
 
146
146
 
147
147
  <p><pre class="syntax"><span class="constant">Membership</span><span class="punct">.</span><span class="ident">find</span> <span class="punct">[</span><span class="number">1</span><span class="punct">,</span><span class="number">1</span><span class="punct">],</span> <span class="punct">[</span><span class="number">2</span><span class="punct">,</span><span class="number">1</span><span class="punct">]</span>
@@ -157,6 +157,31 @@ throughout your application. Just like a normal ActiveRecord.</p>
157
157
  <p><pre class="syntax"><span class="constant">MembershipStatus</span><span class="punct">.</span><span class="ident">find</span><span class="punct">(</span><span class="symbol">:first</span><span class="punct">).</span><span class="ident">memberships</span><span class="punct">.</span><span class="ident">count</span> <span class="comment"># =&gt; 1</span></pre></p>
158
158
 
159
159
 
160
+ <h3>Routes with Rails</h3>
161
+
162
+
163
+ <p>From Pete Sumskas:</p>
164
+
165
+
166
+ <blockquote>
167
+ I ran into one problem that I didn&#8217;t see mentioned on <a href="http://groups.google.com/group/compositekeys">this list</a> &#8211;
168
+ and I didn&#8217;t see any information about what I should do to address it in the
169
+ documentation (might have missed it).
170
+
171
+ The problem was that the urls being generated for a &#8216;show&#8217; action (for
172
+ example) had a syntax like:
173
+
174
+ <pre>/controller/show/123000,Bu70</pre>
175
+
176
+ for a two-field composite PK. The default routing would not match that,
177
+ so after working out how to do the routing I added:
178
+
179
+ <pre class="syntax"><span class="ident">map</span><span class="punct">.</span><span class="ident">connect</span> <span class="punct">'</span><span class="string">:controller/:action/:id</span><span class="punct">',</span> <span class="symbol">:id</span> <span class="punct">=&gt;</span> <span class="punct">/</span><span class="regex"><span class="escape">\w</span>+(,<span class="escape">\w</span>+)*</span><span class="punct">/</span></pre>
180
+
181
+ to my <code>route.rb</code> file.
182
+
183
+ </blockquote>
184
+
160
185
  <p><a name="dbs"></a></p>
161
186
 
162
187
 
@@ -189,8 +214,8 @@ throughout your application. Just like a normal ActiveRecord.</p>
189
214
  </tr>
190
215
  <tr>
191
216
  <td>oracle </td>
192
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Help+with+Oracle">I can help</a>)</td>
193
- <td><span class=unknown>???</span> (<a href="mailto:compositekeys@googlegroups.com?subject=Oracle+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Oracle+is+failing">No&#8230;</a>)</td>
217
+ <td><span class=success><span class="caps">YES</span></span> (new 0.8.2)</td>
218
+ <td><span class=success><span class="caps">YES</span></span> (<a href="mailto:compositekeys@googlegroups.com?subject=Oracle+is+working">Yes!</a> or <a href="mailto:compositekeys@googlegroups.com?subject=Oracle+is+failing">No&#8230;</a>)</td>
194
219
  </tr>
195
220
  <tr>
196
221
  <td>sqlserver </td>
@@ -227,6 +252,12 @@ throughout your application. Just like a normal ActiveRecord.</p>
227
252
 
228
253
 
229
254
 
255
+ <h3>Thanks go to&#8230;</h3>
256
+
257
+
258
+ <p><strong>Darrin Holst</strong> &#8211; for Oracle unit tests and calculations support</p>
259
+
260
+
230
261
  <h2>Dr Nic&#8217;s Blog</h2>
231
262
 
232
263
 
@@ -251,7 +282,7 @@ other stories and things.</p>
251
282
 
252
283
  <p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a>.</p>
253
284
  <p class="coda">
254
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 7th April 2007<br>
285
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 3rd May 2007<br>
255
286
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
256
287
  </p>
257
288
  </div>
@@ -78,7 +78,7 @@ throughout your application. Just like a normal ActiveRecord.
78
78
 
79
79
  h2. Other tricks
80
80
 
81
- Pass a list of composite ids to the <code>#find</code> method
81
+ h3. Pass a list of composite ids to the <code>#find</code> method
82
82
 
83
83
  <pre syntax="ruby">Membership.find [1,1], [2,1]
84
84
  => [
@@ -90,6 +90,29 @@ Perform <code>#count</code> operations
90
90
 
91
91
  <pre syntax="ruby">MembershipStatus.find(:first).memberships.count # => 1</pre>
92
92
 
93
+ h3. Routes with Rails
94
+
95
+ From Pete Sumskas:
96
+
97
+ <blockquote>
98
+ I ran into one problem that I didn't see mentioned on "this list":http://groups.google.com/group/compositekeys -
99
+ and I didn't see any information about what I should do to address it in the
100
+ documentation (might have missed it).
101
+
102
+ The problem was that the urls being generated for a 'show' action (for
103
+ example) had a syntax like:
104
+
105
+ <pre>/controller/show/123000,Bu70</pre>
106
+
107
+ for a two-field composite PK. The default routing would not match that,
108
+ so after working out how to do the routing I added:
109
+
110
+ <pre syntax="ruby">map.connect ':controller/:action/:id', :id => /\w+(,\w+)*/</pre>
111
+
112
+ to my <code>route.rb</code> file.
113
+
114
+ </blockquote>
115
+
93
116
  <a name="dbs"></a>
94
117
 
95
118
  h2. Which databases?
@@ -101,7 +124,7 @@ A suite of unit tests have been run on the following databases supported by Acti
101
124
  |mysql |<span class=success>YES</span>|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Mysql+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Mysql+is+failing)|
102
125
  |sqlite3 |<span class=success>YES</span> (new 0.8.0)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Sqlite3+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Sqlite3+is+failing)|
103
126
  |postgresql|<span class=success>YES</span> (new 0.8.0)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Postgresql+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Postgresql+is+failing)|
104
- |oracle |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Oracle)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Oracle+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Oracle+is+failing)|
127
+ |oracle |<span class=success>YES</span> (new 0.8.2)|<span class=success>YES</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Oracle+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Oracle+is+failing)|
105
128
  |sqlserver |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+SQLServer)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=SQLServer+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=SQLServer+is+failing)|
106
129
  |db2 |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+DB2)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=DB2+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=DB2+is+failing)|
107
130
  |firebird |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Firebird)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Firebird+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Firebird+is+failing)|
@@ -109,6 +132,10 @@ A suite of unit tests have been run on the following databases supported by Acti
109
132
  |openbase |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Openbase)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Openbase+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Openbase+is+failing)|
110
133
  |frontbase |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Frontbase)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Frontbase+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Frontbase+is+failing)|
111
134
 
135
+ h3. Thanks go to...
136
+
137
+ *Darrin Holst* - for Oracle unit tests and calculations support
138
+
112
139
  h2. Dr Nic's Blog
113
140
 
114
141
  "http://www.drnicwilliams.com":http://www.drnicwilliams.com - for future announcements and
@@ -1,3 +1,3 @@
1
1
  // Announcement JS file
2
- var version = "0.8.2";
2
+ var version = "0.8.3";
3
3
  MagicAnnouncement.show('compositekeys', version);
@@ -1,4 +1,4 @@
1
1
  // Version JS file
2
- var version = "0.8.2";
2
+ var version = "0.8.3";
3
3
 
4
4
  document.write(" - " + version);
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: composite_primary_keys
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.8.2
7
- date: 2007-04-11 00:00:00 +02:00
6
+ version: 0.8.3
7
+ date: 2007-05-03 00:00:00 +02:00
8
8
  summary: Composite key support for ActiveRecords
9
9
  require_paths:
10
10
  - lib
@@ -56,6 +56,8 @@ files:
56
56
  - test/fixtures/article.rb
57
57
  - test/fixtures/articles.yml
58
58
  - test/fixtures/db_definitions/mysql.sql
59
+ - test/fixtures/db_definitions/oracle.drop.sql
60
+ - test/fixtures/db_definitions/oracle.sql
59
61
  - test/fixtures/db_definitions/postgresql.sql
60
62
  - test/fixtures/db_definitions/sqlite.sql
61
63
  - test/fixtures/group.rb