composite_primary_keys 0.8.4 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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'