composite_primary_keys 0.8.4 → 0.8.5

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,33 +1,64 @@
1
- *** 0.8.4 / 2007-5-3
1
+ == 0.8.5 / 2007-6-5
2
2
 
3
- + 1 bugfix
4
- + Corrected ids_list => ids in the exception message. That'll teach me for not adding unit tests before fixing bugs.
3
+ * 1 change due to Rails Core change
4
+ * Can no longer use RAILS_CONNECTION_ADAPTERS from Rails core
5
+ * 7 dev improvement:
6
+ * Changed History.txt syntax to rdoc format
7
+ * Added deploy tasks
8
+ * Removed CHANGELOG + migrated into History.txt
9
+ * Changed PKG_NAME -> GEM_NAME in Rakefile
10
+ * Renamed README -> README.txt for :publish_docs task
11
+ * Added :check_version task
12
+ * VER => VERS in rakefile
13
+ * 1 website improvement:
14
+ * website/index.txt includes link to "8 steps to fix other ppls code"
5
15
 
6
- *** 0.8.3 / 2007-5-3
16
+ == 0.8.4 / 2007-5-3
7
17
 
8
- + 1 bugfix
9
- + Explicit reference to ::ActiveRecord::RecordNotFound
10
- + 1 website addition:
11
- + Added routing help [Pete Sumskas]
18
+ * 1 bugfix
19
+ * Corrected ids_list => ids in the exception message. That'll teach me for not adding unit tests before fixing bugs.
12
20
 
13
- *** 0.8.2 / 2007-4-11
21
+ == 0.8.3 / 2007-5-3
14
22
 
15
- + 1 major enhancement:
16
- + Oracle unit tests!! [Darrin Holst]
17
- + And they work too
23
+ * 1 bugfix
24
+ * Explicit reference to ::ActiveRecord::RecordNotFound
25
+ * 1 website addition:
26
+ * Added routing help [Pete Sumskas]
18
27
 
19
- *** 0.8.1 / 2007-4-10
28
+ == 0.8.2 / 2007-4-11
20
29
 
21
- + 1 bug fix:
22
- + Fixed the distinct(count) for oracle (removed 'as')
30
+ * 1 major enhancement:
31
+ * Oracle unit tests!! [Darrin Holst]
32
+ * And they work too
23
33
 
24
- *** 0.8.0 / 2007-4-6
34
+ == 0.8.1 / 2007-4-10
25
35
 
26
- + 1 major enhancement:
27
- + Support for calcualtions on associations
28
- + 2 new DB supported:
29
- + Tests run on sqlite
30
- + Tests run on postgresql
31
- + History.txt to keep track of changes like these
32
- + Using Hoe for Rakefile
33
- + Website generator rake tasks
36
+ * 1 bug fix:
37
+ * Fixed the distinct(count) for oracle (removed 'as')
38
+
39
+ == 0.8.0 / 2007-4-6
40
+
41
+ * 1 major enhancement:
42
+ * Support for calcualtions on associations
43
+ * 2 new DB supported:
44
+ * Tests run on sqlite
45
+ * Tests run on postgresql
46
+ * History.txt to keep track of changes like these
47
+ * Using Hoe for Rakefile
48
+ * Website generator rake tasks
49
+
50
+ == 0.3.3
51
+ * id=
52
+ * create now work
53
+
54
+ == 0.1.4
55
+ * it was important that #{primary_key} for composites --> 'key1,key2' and not 'key1key2' so created PrimaryKeys class
56
+
57
+ == 0.0.1
58
+ * Initial version
59
+ * set_primary_keys(*keys) is the activation class method to transform an ActiveRecord into a composite primary key AR
60
+ * find(*ids) supports the passing of
61
+ * id sets: Foo.find(2,1),
62
+ * lists of id sets: Foo.find([2,1], [7,3], [8,12]),
63
+ * and even stringified versions of the above:
64
+ * Foo.find '2,1' or Foo.find '2,1;7,3'
@@ -1,7 +1,6 @@
1
- CHANGELOG
2
1
  History.txt
3
2
  Manifest.txt
4
- README
3
+ README.txt
5
4
  Rakefile
6
5
  install.rb
7
6
  lib/composite_primary_keys.rb
File without changes
data/Rakefile CHANGED
@@ -15,12 +15,14 @@ AUTHOR = "Dr Nic Williams"
15
15
  EMAIL = "drnicwilliams@gmail.com"
16
16
  DESCRIPTION = "Composite key support for ActiveRecords"
17
17
  GEM_NAME = "composite_primary_keys" # what ppl will type to install your gem
18
+ config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
19
+ RUBYFORGE_USERNAME = config["username"]
18
20
  RUBYFORGE_PROJECT = "compositekeys"
19
21
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
20
22
 
21
23
  REV = nil #File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil
22
- VER = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : ""))
23
- CLEAN.include ['**/.*.sw?', '*.gem', '.config','debug.log','*.db','logfile','.DS_Store']
24
+ VERS = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : ""))
25
+ CLEAN.include ['**/.*.sw?', '*.gem', '.config','debug.log','*.db','logfile','.DS_Store', '.project']
24
26
  RDOC_OPTS = ['--quiet', '--title', "newgem documentation",
25
27
  "--opname", "index.html",
26
28
  "--line-numbers",
@@ -35,7 +37,7 @@ end
35
37
 
36
38
  # Generate all the Rake tasks
37
39
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
38
- hoe = Hoe.new(GEM_NAME, VER) do |p|
40
+ hoe = Hoe.new(GEM_NAME, VERS) do |p|
39
41
  p.author = AUTHOR
40
42
  p.description = DESCRIPTION
41
43
  p.email = EMAIL
@@ -43,7 +45,7 @@ hoe = Hoe.new(GEM_NAME, VER) do |p|
43
45
  p.url = HOMEPATH
44
46
  p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
45
47
  p.test_globs = ["test/**/test*.rb"]
46
- p.clean_globs = CLEAN #An array of file patterns to delete on clean.
48
+ p.clean_globs |= CLEAN #An array of file patterns to delete on clean.
47
49
 
48
50
  # == Optional
49
51
  p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
@@ -51,18 +53,13 @@ hoe = Hoe.new(GEM_NAME, VER) do |p|
51
53
  #p.spec_extras - A hash of extra values to set in the gemspec.
52
54
  end
53
55
 
54
- PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
55
- PKG_NAME = 'composite_primary_keys'
56
- PKG_VERSION = CompositePrimaryKeys::VERSION::STRING + PKG_BUILD
57
- PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
56
+ CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\n\n")
57
+ PATH = RUBYFORGE_PROJECT
58
+ hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
58
59
 
59
- RELEASE_NAME = "REL #{PKG_VERSION}"
60
60
 
61
- RUBY_FORGE_PROJECT = "compositekeys"
62
- RUBY_FORGE_USER = "nicwilliams"
63
-
64
-
65
- for adapter in %w( mysql sqlite oracle postgresql ) # UNTESTED - firebird sqlserver sqlserver_odbc db2 sybase openbase )
61
+ # UNTESTED - firebird sqlserver sqlserver_odbc db2 sybase openbase
62
+ for adapter in %w( mysql sqlite oracle postgresql )
66
63
  Rake::TestTask.new("test_#{adapter}") { |t|
67
64
  t.libs << "test" << "test/connections/native_#{adapter}"
68
65
  t.pattern = "test/test_*.rb"
@@ -75,13 +72,17 @@ SCHEMA_PATH = File.join(File.dirname(__FILE__), *%w(test fixtures db_definitions
75
72
  desc 'Build the MySQL test databases'
76
73
  task :build_mysql_databases do
77
74
  puts File.join(SCHEMA_PATH, 'mysql.sql')
78
- sh %{ mysqladmin -u root create "#{PKG_NAME}_unittest" }
79
- sh %{ mysql -u root "#{PKG_NAME}_unittest" < #{File.join(SCHEMA_PATH, 'mysql.sql')} }
75
+ socket = '/Applications/MAMP/tmp/mysql/mysql.sock'
76
+ user = 'root'
77
+ sh %{ mysqladmin -u #{user} -S #{socket} -p create "#{GEM_NAME}_unittest" }
78
+ sh %{ mysql -u #{user} -S #{socket} -p "#{GEM_NAME}_unittest" < #{File.join(SCHEMA_PATH, 'mysql.sql')} }
80
79
  end
81
80
 
82
81
  desc 'Drop the MySQL test databases'
83
82
  task :drop_mysql_databases do
84
- sh %{ mysqladmin -u root -f drop "#{PKG_NAME}_unittest" }
83
+ socket = '/Applications/MAMP/tmp/mysql/mysql.sock'
84
+ user = 'root'
85
+ sh %{ mysqladmin -u #{user} -S #{socket} -p -f drop "#{GEM_NAME}_unittest" }
85
86
  end
86
87
 
87
88
  desc 'Rebuild the MySQL test databases'
@@ -106,13 +107,13 @@ task :rebuild_sqlite_databases => [:drop_sqlite_databases, :build_sqlite_databas
106
107
 
107
108
  desc 'Build the PostgreSQL test databases'
108
109
  task :build_postgresql_databases do
109
- sh %{ createdb "#{PKG_NAME}_unittest" }
110
- sh %{ psql "#{PKG_NAME}_unittest" -f #{File.join(SCHEMA_PATH, 'postgresql.sql')} }
110
+ sh %{ createdb "#{GEM_NAME}_unittest" }
111
+ sh %{ psql "#{GEM_NAME}_unittest" -f #{File.join(SCHEMA_PATH, 'postgresql.sql')} }
111
112
  end
112
113
 
113
114
  desc 'Drop the PostgreSQL test databases'
114
115
  task :drop_postgresql_databases do
115
- sh %{ dropdb "#{PKG_NAME}_unittest" }
116
+ sh %{ dropdb "#{GEM_NAME}_unittest" }
116
117
  end
117
118
 
118
119
  desc 'Rebuild the PostgreSQL test databases'
@@ -145,8 +146,31 @@ task :website_upload do
145
146
  host = "#{config["username"]}@rubyforge.org"
146
147
  remote_dir = "/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/"
147
148
  local_dir = 'website'
148
- sh %{rsync -av #{local_dir}/ #{host}:#{remote_dir}}
149
+ sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
149
150
  end
150
151
 
151
152
  desc 'Generate and upload website files'
152
- task :website => [:website_generate, :website_upload]
153
+ task :website => [:website_generate, :website_upload, :publish_docs]
154
+
155
+ desc 'Release the website and new gem version'
156
+ task :deploy => [:check_version, :website, :release] do
157
+ puts "Remember to create SVN tag:"
158
+ puts "svn copy svn+ssh://#{RUBYFORGE_USERNAME}@rubyforge.org/var/svn/#{PATH}/trunk " +
159
+ "svn+ssh://#{RUBYFORGE_USERNAME}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
160
+ puts "Suggested comment:"
161
+ puts "Tagging release #{CHANGES}"
162
+ end
163
+
164
+ desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
165
+ task :local_deploy => [:website_generate, :install_gem]
166
+
167
+ task :check_version do
168
+ unless ENV['VERSION']
169
+ puts 'Must pass a VERSION=x.y.z release version'
170
+ exit
171
+ end
172
+ unless ENV['VERSION'] == VERS
173
+ puts "Please update your version.rb to match the release version, currently #{VERS}"
174
+ exit
175
+ end
176
+ end
@@ -45,9 +45,9 @@ ActiveRecord::Base.class_eval do
45
45
  include CompositePrimaryKeys::ActiveRecord::Base
46
46
  end
47
47
 
48
- RAILS_CONNECTION_ADAPTERS.each do |adapter|
48
+ Dir[File.dirname(__FILE__) + '/composite_primary_keys/connection_adapters/*.rb'].each do |adapter|
49
49
  begin
50
- require "composite_primary_keys/connection_adapters/" + adapter + "_adapter"
50
+ require "composite_primary_keys/connection_adapters/" + adapter.gsub('.rb','')
51
51
  rescue MissingSourceFile
52
52
  end
53
53
  end
@@ -2,7 +2,7 @@ module CompositePrimaryKeys
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 8
5
- TINY = 4
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -8,6 +8,8 @@ db1 = 'composite_primary_keys_unittest'
8
8
  connection_options = {
9
9
  :adapter => "mysql",
10
10
  :username => "root",
11
+ :password => "root",
12
+ :socket => '/Applications/MAMP/tmp/mysql/mysql.sock',
11
13
  :encoding => "utf8",
12
14
  :database => db1
13
15
  }
@@ -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.4</a>
36
+ <a href="http://rubyforge.org/projects/compositekeys" class="numbers">0.8.5</a>
37
37
  </div>
38
38
  <h1>&#x2192; Ruby on Rails</h1>
39
39
 
@@ -271,6 +271,15 @@ other stories and things.</p>
271
271
  <p><a href="http://groups.google.com/group/compositekeys">http://groups.google.com/group/compositekeys</a></p>
272
272
 
273
273
 
274
+ <h2>How to submit patches</h2>
275
+
276
+
277
+ <p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people&#8217;s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
278
+
279
+
280
+ <p>The trunk repository is <code>svn://rubyforge.org/var/svn/compositekeys/trunk</code> for anonymous access.</p>
281
+
282
+
274
283
  <h2>Licence</h2>
275
284
 
276
285
 
@@ -282,7 +291,7 @@ other stories and things.</p>
282
291
 
283
292
  <p>Comments are welcome. Send an email to <a href="mailto:drnicwilliams@gmail.com">Dr Nic Williams</a>.</p>
284
293
  <p class="coda">
285
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 3rd May 2007<br>
294
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 1st June 2007<br>
286
295
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
287
296
  </p>
288
297
  </div>
@@ -145,6 +145,13 @@ h2. Forum
145
145
 
146
146
  "http://groups.google.com/group/compositekeys":http://groups.google.com/group/compositekeys
147
147
 
148
+ h2. How to submit patches
149
+
150
+ Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
151
+
152
+
153
+ The trunk repository is <code>svn://rubyforge.org/var/svn/compositekeys/trunk</code> for anonymous access.
154
+
148
155
  h2. Licence
149
156
 
150
157
  This code is free to use under the terms of the MIT licence.
@@ -1,3 +1,3 @@
1
1
  // Announcement JS file
2
- var version = "0.8.4";
2
+ var version = "0.8.5";
3
3
  MagicAnnouncement.show('compositekeys', version);
@@ -1,4 +1,4 @@
1
1
  // Version JS file
2
- var version = "0.8.4";
2
+ var version = "0.8.5";
3
3
 
4
4
  document.write(" - " + version);
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
2
+ rubygems_version: 0.9.4.1
3
3
  specification_version: 1
4
4
  name: composite_primary_keys
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.8.4
7
- date: 2007-05-03 00:00:00 +02:00
6
+ version: 0.8.5
7
+ date: 2007-06-05 00:00:00 +02:00
8
8
  summary: Composite key support for ActiveRecords
9
9
  require_paths:
10
10
  - lib
@@ -29,10 +29,9 @@ post_install_message:
29
29
  authors:
30
30
  - Dr Nic Williams
31
31
  files:
32
- - CHANGELOG
33
32
  - History.txt
34
33
  - Manifest.txt
35
- - README
34
+ - README.txt
36
35
  - Rakefile
37
36
  - install.rb
38
37
  - lib/composite_primary_keys.rb
@@ -122,10 +121,16 @@ test_files:
122
121
  - test/test_santiago.rb
123
122
  - test/test_tutorial_examle.rb
124
123
  - test/test_update.rb
125
- rdoc_options: []
126
-
127
- extra_rdoc_files: []
128
-
124
+ rdoc_options:
125
+ - --main
126
+ - README.txt
127
+ extra_rdoc_files:
128
+ - History.txt
129
+ - Manifest.txt
130
+ - README.txt
131
+ - website/index.txt
132
+ - website/version-raw.txt
133
+ - website/version.txt
129
134
  executables: []
130
135
 
131
136
  extensions: []
data/CHANGELOG DELETED
@@ -1,16 +0,0 @@
1
- * 0.3.3 * - bug fixes
2
- - id=
3
- - create now work
4
-
5
- * 0.1.4 *
6
- - it was important that #{primary_key} for composites --> 'key1,key2' and not 'key1key2'
7
- so created PrimaryKeys class
8
-
9
- * 0.0.1 * Initial version
10
- - set_primary_keys(*keys) is the activation class method to transform an ActiveRecord into
11
- a composite primary key AR
12
- - find(*ids) supports the passing of
13
- - id sets: Foo.find(2,1),
14
- - lists of id sets: Foo.find([2,1], [7,3], [8,12]),
15
- - and even stringified versions of the above:
16
- - Foo.find '2,1' or Foo.find '2,1;7,3'