kovyrin-composite_primary_keys 2.3.2

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.
Files changed (122) hide show
  1. data/History.txt +164 -0
  2. data/Manifest.txt +121 -0
  3. data/README.txt +41 -0
  4. data/README_DB2.txt +33 -0
  5. data/Rakefile +65 -0
  6. data/init.rb +2 -0
  7. data/install.rb +30 -0
  8. data/lib/adapter_helper/base.rb +63 -0
  9. data/lib/adapter_helper/mysql.rb +13 -0
  10. data/lib/adapter_helper/oracle.rb +12 -0
  11. data/lib/adapter_helper/postgresql.rb +13 -0
  12. data/lib/adapter_helper/sqlite3.rb +13 -0
  13. data/lib/composite_primary_keys/association_preload.rb +236 -0
  14. data/lib/composite_primary_keys/associations.rb +427 -0
  15. data/lib/composite_primary_keys/attribute_methods.rb +84 -0
  16. data/lib/composite_primary_keys/base.rb +341 -0
  17. data/lib/composite_primary_keys/calculations.rb +68 -0
  18. data/lib/composite_primary_keys/composite_arrays.rb +30 -0
  19. data/lib/composite_primary_keys/connection_adapters/ibm_db_adapter.rb +21 -0
  20. data/lib/composite_primary_keys/connection_adapters/oracle_adapter.rb +15 -0
  21. data/lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb +53 -0
  22. data/lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb +15 -0
  23. data/lib/composite_primary_keys/fixtures.rb +8 -0
  24. data/lib/composite_primary_keys/migration.rb +20 -0
  25. data/lib/composite_primary_keys/reflection.rb +19 -0
  26. data/lib/composite_primary_keys/version.rb +8 -0
  27. data/lib/composite_primary_keys.rb +57 -0
  28. data/loader.rb +24 -0
  29. data/local/database_connections.rb.sample +10 -0
  30. data/local/paths.rb.sample +2 -0
  31. data/local/tasks.rb.sample +2 -0
  32. data/scripts/console.rb +48 -0
  33. data/scripts/txt2html +67 -0
  34. data/scripts/txt2js +59 -0
  35. data/tasks/activerecord_selection.rake +43 -0
  36. data/tasks/databases/mysql.rake +30 -0
  37. data/tasks/databases/oracle.rake +25 -0
  38. data/tasks/databases/postgresql.rake +26 -0
  39. data/tasks/databases/sqlite3.rake +28 -0
  40. data/tasks/databases.rake +12 -0
  41. data/tasks/deployment.rake +22 -0
  42. data/tasks/local_setup.rake +13 -0
  43. data/tasks/website.rake +18 -0
  44. data/test/README_tests.txt +67 -0
  45. data/test/abstract_unit.rb +96 -0
  46. data/test/connections/native_ibm_db/connection.rb +23 -0
  47. data/test/connections/native_mysql/connection.rb +13 -0
  48. data/test/connections/native_oracle/connection.rb +14 -0
  49. data/test/connections/native_postgresql/connection.rb +9 -0
  50. data/test/connections/native_sqlite/connection.rb +9 -0
  51. data/test/fixtures/article.rb +5 -0
  52. data/test/fixtures/articles.yml +6 -0
  53. data/test/fixtures/comment.rb +6 -0
  54. data/test/fixtures/comments.yml +16 -0
  55. data/test/fixtures/db_definitions/db2-create-tables.sql +113 -0
  56. data/test/fixtures/db_definitions/db2-drop-tables.sql +16 -0
  57. data/test/fixtures/db_definitions/mysql.sql +174 -0
  58. data/test/fixtures/db_definitions/oracle.drop.sql +39 -0
  59. data/test/fixtures/db_definitions/oracle.sql +188 -0
  60. data/test/fixtures/db_definitions/postgresql.sql +199 -0
  61. data/test/fixtures/db_definitions/sqlite.sql +160 -0
  62. data/test/fixtures/department.rb +5 -0
  63. data/test/fixtures/departments.yml +3 -0
  64. data/test/fixtures/employee.rb +4 -0
  65. data/test/fixtures/employees.yml +9 -0
  66. data/test/fixtures/group.rb +3 -0
  67. data/test/fixtures/groups.yml +3 -0
  68. data/test/fixtures/hack.rb +6 -0
  69. data/test/fixtures/hacks.yml +2 -0
  70. data/test/fixtures/membership.rb +7 -0
  71. data/test/fixtures/membership_status.rb +3 -0
  72. data/test/fixtures/membership_statuses.yml +10 -0
  73. data/test/fixtures/memberships.yml +6 -0
  74. data/test/fixtures/product.rb +7 -0
  75. data/test/fixtures/product_tariff.rb +5 -0
  76. data/test/fixtures/product_tariffs.yml +12 -0
  77. data/test/fixtures/products.yml +6 -0
  78. data/test/fixtures/reading.rb +4 -0
  79. data/test/fixtures/readings.yml +10 -0
  80. data/test/fixtures/reference_code.rb +7 -0
  81. data/test/fixtures/reference_codes.yml +28 -0
  82. data/test/fixtures/reference_type.rb +7 -0
  83. data/test/fixtures/reference_types.yml +9 -0
  84. data/test/fixtures/street.rb +3 -0
  85. data/test/fixtures/streets.yml +15 -0
  86. data/test/fixtures/suburb.rb +6 -0
  87. data/test/fixtures/suburbs.yml +9 -0
  88. data/test/fixtures/tariff.rb +6 -0
  89. data/test/fixtures/tariffs.yml +13 -0
  90. data/test/fixtures/user.rb +10 -0
  91. data/test/fixtures/users.yml +6 -0
  92. data/test/hash_tricks.rb +34 -0
  93. data/test/plugins/pagination.rb +405 -0
  94. data/test/plugins/pagination_helper.rb +135 -0
  95. data/test/test_associations.rb +160 -0
  96. data/test/test_attribute_methods.rb +22 -0
  97. data/test/test_attributes.rb +84 -0
  98. data/test/test_clone.rb +34 -0
  99. data/test/test_composite_arrays.rb +51 -0
  100. data/test/test_create.rb +68 -0
  101. data/test/test_delete.rb +96 -0
  102. data/test/test_dummy.rb +28 -0
  103. data/test/test_find.rb +73 -0
  104. data/test/test_ids.rb +97 -0
  105. data/test/test_miscellaneous.rb +39 -0
  106. data/test/test_pagination.rb +38 -0
  107. data/test/test_polymorphic.rb +31 -0
  108. data/test/test_santiago.rb +27 -0
  109. data/test/test_tutorial_examle.rb +26 -0
  110. data/test/test_update.rb +40 -0
  111. data/tmp/test.db +0 -0
  112. data/website/index.html +195 -0
  113. data/website/index.txt +159 -0
  114. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  115. data/website/stylesheets/screen.css +126 -0
  116. data/website/template.js +3 -0
  117. data/website/template.rhtml +53 -0
  118. data/website/version-raw.js +4 -0
  119. data/website/version-raw.txt +2 -0
  120. data/website/version.js +4 -0
  121. data/website/version.txt +3 -0
  122. metadata +197 -0
data/History.txt ADDED
@@ -0,0 +1,164 @@
1
+ == 2.3.2 2009-07-16
2
+
3
+ * explicitly load associations.rb due to some getting an unitialized constant error
4
+
5
+ == 2.3.2 2009-05-28
6
+
7
+ * get tests working again with AR 2.3.2
8
+
9
+ == 2.2.1 2009-01-21
10
+
11
+ * fix ActiveRecord#exists? to work when passing conditions instead of ids
12
+
13
+ == 2.2.0 2008-10-29
14
+
15
+ * Rails 2.2.0 compatibility
16
+
17
+ == 1.1.0 2008-10-29
18
+
19
+ * fixes to get cpk working for Rails 2.1.2
20
+
21
+ == 1.0.10 2008-10-22
22
+
23
+ * add composite key where clause creator method [timurv]
24
+
25
+ == 1.0.9 2008-09-08
26
+
27
+ * fix postgres tests
28
+ * fix for delete_records when has_many association has composite keys [darxriggs]
29
+ * more consistent table/column name quoting [pbrant]
30
+
31
+ == 1.0.8 2008-08-27
32
+
33
+ * fix has_many :through for non composite models [thx rcarver]
34
+
35
+ == 1.0.7 2008-08-12
36
+
37
+ * fix for the last fix -- when has_many is composite and belongs_to is single
38
+
39
+ == 1.0.6 2008-08-06
40
+
41
+ * fix associations create
42
+
43
+ == 1.0.5 2008-07-25
44
+
45
+ * fix for calculations with a group by clause [thx Sirius Black]
46
+
47
+ == 1.0.4 2008-07-15
48
+
49
+ * support for oracle_enhanced adapter [thx Raimonds Simanovskis]
50
+
51
+ == 1.0.3 2008-07-13
52
+
53
+ * more fixes and tests for has many through [thx Menno van der Sman]
54
+
55
+ == 1.0.2 2008-06-07
56
+
57
+ * fix for has many through when through association has composite keys
58
+
59
+ == 1.0.1 2008-06-06
60
+
61
+ * Oracle fixes
62
+
63
+ == 1.0.0 2008-06-05
64
+
65
+ * Support for Rails 2.1
66
+
67
+ == 0.9.93 2008-06-01
68
+
69
+ * set fixed dependency on activerecord 2.0.2
70
+
71
+ == 0.9.92 2008-02-22
72
+
73
+ * Support for has_and_belongs_to_many
74
+
75
+ == 0.9.91 2008-01-27
76
+
77
+ * Incremented activerecord dependency to 2.0.2 [thx emmanuel.pirsch]
78
+
79
+ == 0.9.90 2008-01-27
80
+
81
+ * Trial release for rails/activerecord 2.0.2 supported
82
+
83
+ == 0.9.1 2007-10-28
84
+
85
+ * Migrations fix - allow :primary_key => [:name] to work [no unit test] [thx Shugo Maeda]
86
+
87
+ == 0.9.0 2007-09-28
88
+
89
+ * Added support for polymorphs [thx nerdrew]
90
+ * init.rb file so gem can be installed as a plugin for Rails [thx nerdrew]
91
+ * Added ibm_db support [thx K Venkatasubramaniyan]
92
+ * Support for cleaning dependents [thx K Venkatasubramaniyan]
93
+ * Rafactored db rake tasks into namespaces
94
+ * Added namespaced tests (e.g. mysql:test for test_mysql)
95
+
96
+ == 0.8.6 / 2007-6-12
97
+
98
+ * 1 emergency fix due to Rails Core change
99
+ * Rails v7004 removed #quote; fixed with connection.quote_column_name [thx nerdrew]
100
+
101
+ == 0.8.5 / 2007-6-5
102
+
103
+ * 1 change due to Rails Core change
104
+ * Can no longer use RAILS_CONNECTION_ADAPTERS from Rails core
105
+ * 7 dev improvement:
106
+ * Changed History.txt syntax to rdoc format
107
+ * Added deploy tasks
108
+ * Removed CHANGELOG + migrated into History.txt
109
+ * Changed PKG_NAME -> GEM_NAME in Rakefile
110
+ * Renamed README -> README.txt for :publish_docs task
111
+ * Added :check_version task
112
+ * VER => VERS in rakefile
113
+ * 1 website improvement:
114
+ * website/index.txt includes link to "8 steps to fix other ppls code"
115
+
116
+ == 0.8.4 / 2007-5-3
117
+
118
+ * 1 bugfix
119
+ * Corrected ids_list => ids in the exception message. That'll teach me for not adding unit tests before fixing bugs.
120
+
121
+ == 0.8.3 / 2007-5-3
122
+
123
+ * 1 bugfix
124
+ * Explicit reference to ::ActiveRecord::RecordNotFound
125
+ * 1 website addition:
126
+ * Added routing help [Pete Sumskas]
127
+
128
+ == 0.8.2 / 2007-4-11
129
+
130
+ * 1 major enhancement:
131
+ * Oracle unit tests!! [Darrin Holst]
132
+ * And they work too
133
+
134
+ == 0.8.1 / 2007-4-10
135
+
136
+ * 1 bug fix:
137
+ * Fixed the distinct(count) for oracle (removed 'as')
138
+
139
+ == 0.8.0 / 2007-4-6
140
+
141
+ * 1 major enhancement:
142
+ * Support for calcualtions on associations
143
+ * 2 new DB supported:
144
+ * Tests run on sqlite
145
+ * Tests run on postgresql
146
+ * History.txt to keep track of changes like these
147
+ * Using Hoe for Rakefile
148
+ * Website generator rake tasks
149
+
150
+ == 0.3.3
151
+ * id=
152
+ * create now work
153
+
154
+ == 0.1.4
155
+ * it was important that #{primary_key} for composites --> 'key1,key2' and not 'key1key2' so created PrimaryKeys class
156
+
157
+ == 0.0.1
158
+ * Initial version
159
+ * set_primary_keys(*keys) is the activation class method to transform an ActiveRecord into a composite primary key AR
160
+ * find(*ids) supports the passing of
161
+ * id sets: Foo.find(2,1),
162
+ * lists of id sets: Foo.find([2,1], [7,3], [8,12]),
163
+ * and even stringified versions of the above:
164
+ * Foo.find '2,1' or Foo.find '2,1;7,3'
data/Manifest.txt ADDED
@@ -0,0 +1,121 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ README_DB2.txt
5
+ Rakefile
6
+ init.rb
7
+ install.rb
8
+ lib/adapter_helper/base.rb
9
+ lib/adapter_helper/mysql.rb
10
+ lib/adapter_helper/oracle.rb
11
+ lib/adapter_helper/postgresql.rb
12
+ lib/adapter_helper/sqlite3.rb
13
+ lib/composite_primary_keys.rb
14
+ lib/composite_primary_keys/association_preload.rb
15
+ lib/composite_primary_keys/associations.rb
16
+ lib/composite_primary_keys/attribute_methods.rb
17
+ lib/composite_primary_keys/base.rb
18
+ lib/composite_primary_keys/calculations.rb
19
+ lib/composite_primary_keys/composite_arrays.rb
20
+ lib/composite_primary_keys/connection_adapters/ibm_db_adapter.rb
21
+ lib/composite_primary_keys/connection_adapters/oracle_adapter.rb
22
+ lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb
23
+ lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb
24
+ lib/composite_primary_keys/fixtures.rb
25
+ lib/composite_primary_keys/migration.rb
26
+ lib/composite_primary_keys/reflection.rb
27
+ lib/composite_primary_keys/version.rb
28
+ loader.rb
29
+ local/database_connections.rb.sample
30
+ local/paths.rb.sample
31
+ local/tasks.rb.sample
32
+ scripts/console.rb
33
+ scripts/txt2html
34
+ scripts/txt2js
35
+ tasks/activerecord_selection.rake
36
+ tasks/databases.rake
37
+ tasks/databases/mysql.rake
38
+ tasks/databases/oracle.rake
39
+ tasks/databases/postgresql.rake
40
+ tasks/databases/sqlite3.rake
41
+ tasks/deployment.rake
42
+ tasks/local_setup.rake
43
+ tasks/website.rake
44
+ test/README_tests.txt
45
+ test/abstract_unit.rb
46
+ test/connections/native_ibm_db/connection.rb
47
+ test/connections/native_mysql/connection.rb
48
+ test/connections/native_oracle/connection.rb
49
+ test/connections/native_postgresql/connection.rb
50
+ test/connections/native_sqlite/connection.rb
51
+ test/fixtures/article.rb
52
+ test/fixtures/articles.yml
53
+ test/fixtures/comment.rb
54
+ test/fixtures/comments.yml
55
+ test/fixtures/db_definitions/db2-create-tables.sql
56
+ test/fixtures/db_definitions/db2-drop-tables.sql
57
+ test/fixtures/db_definitions/mysql.sql
58
+ test/fixtures/db_definitions/oracle.drop.sql
59
+ test/fixtures/db_definitions/oracle.sql
60
+ test/fixtures/db_definitions/postgresql.sql
61
+ test/fixtures/db_definitions/sqlite.sql
62
+ test/fixtures/department.rb
63
+ test/fixtures/departments.yml
64
+ test/fixtures/employee.rb
65
+ test/fixtures/employees.yml
66
+ test/fixtures/group.rb
67
+ test/fixtures/groups.yml
68
+ test/fixtures/hack.rb
69
+ test/fixtures/hacks.yml
70
+ test/fixtures/membership.rb
71
+ test/fixtures/membership_status.rb
72
+ test/fixtures/membership_statuses.yml
73
+ test/fixtures/memberships.yml
74
+ test/fixtures/product.rb
75
+ test/fixtures/product_tariff.rb
76
+ test/fixtures/product_tariffs.yml
77
+ test/fixtures/products.yml
78
+ test/fixtures/reading.rb
79
+ test/fixtures/readings.yml
80
+ test/fixtures/reference_code.rb
81
+ test/fixtures/reference_codes.yml
82
+ test/fixtures/reference_type.rb
83
+ test/fixtures/reference_types.yml
84
+ test/fixtures/street.rb
85
+ test/fixtures/streets.yml
86
+ test/fixtures/suburb.rb
87
+ test/fixtures/suburbs.yml
88
+ test/fixtures/tariff.rb
89
+ test/fixtures/tariffs.yml
90
+ test/fixtures/user.rb
91
+ test/fixtures/users.yml
92
+ test/hash_tricks.rb
93
+ test/plugins/pagination.rb
94
+ test/plugins/pagination_helper.rb
95
+ test/test_associations.rb
96
+ test/test_attribute_methods.rb
97
+ test/test_attributes.rb
98
+ test/test_clone.rb
99
+ test/test_composite_arrays.rb
100
+ test/test_create.rb
101
+ test/test_delete.rb
102
+ test/test_dummy.rb
103
+ test/test_find.rb
104
+ test/test_ids.rb
105
+ test/test_miscellaneous.rb
106
+ test/test_pagination.rb
107
+ test/test_polymorphic.rb
108
+ test/test_santiago.rb
109
+ test/test_tutorial_examle.rb
110
+ test/test_update.rb
111
+ tmp/test.db
112
+ website/index.html
113
+ website/index.txt
114
+ website/javascripts/rounded_corners_lite.inc.js
115
+ website/stylesheets/screen.css
116
+ website/template.js
117
+ website/template.rhtml
118
+ website/version-raw.js
119
+ website/version-raw.txt
120
+ website/version.js
121
+ website/version.txt
data/README.txt ADDED
@@ -0,0 +1,41 @@
1
+ = Composite Primary Keys for ActiveRecords
2
+
3
+ == Summary
4
+
5
+ ActiveRecords/Rails famously doesn't support composite primary keys.
6
+ This RubyGem extends the activerecord gem to provide CPK support.
7
+
8
+ == Installation
9
+
10
+ gem install composite_primary_keys
11
+
12
+ == Usage
13
+
14
+ require 'composite_primary_keys'
15
+ class ProductVariation
16
+ set_primary_keys :product_id, :variation_seq
17
+ end
18
+
19
+ pv = ProductVariation.find(345, 12)
20
+
21
+ It even supports composite foreign keys for associations.
22
+
23
+ See http://compositekeys.rubyforge.org for more.
24
+
25
+ == Running Tests
26
+
27
+ See test/README.tests.txt
28
+
29
+ == Url
30
+
31
+ http://compositekeys.rubyforge.org
32
+
33
+ == Questions, Discussion and Contributions
34
+
35
+ http://groups.google.com/compositekeys
36
+
37
+ == Author
38
+
39
+ Written by Dr Nic Williams, drnicwilliams@gmail
40
+ Contributions by many!
41
+
data/README_DB2.txt ADDED
@@ -0,0 +1,33 @@
1
+ Composite Primary key support for db2
2
+
3
+ == Driver Support ==
4
+
5
+ DB2 support requires the IBM_DB driver provided by http://rubyforge.org/projects/rubyibm/
6
+ project. Install using gem install ibm_db. Tested against version 0.60 of the driver.
7
+ This rubyforge project appears to be permenant location for the IBM adapter.
8
+ Older versions of the driver available from IBM Alphaworks will not work.
9
+
10
+ == Driver Bug and workaround provided as part of this plugin ==
11
+
12
+ Unlike the basic quote routine available for Rails AR, the DB2 adapter's quote
13
+ method doesn't return " column_name = 1 " when string values (integers in string type variable)
14
+ are passed for quoting numeric column. Rather it returns "column_name = '1'.
15
+ DB2 doesn't accept single quoting numeric columns in SQL. Currently, as part of
16
+ this plugin a fix is provided for the DB2 adapter since this plugin does
17
+ pass string values like this. Perhaps a patch should be sent to the DB2 adapter
18
+ project for a permanant fix.
19
+
20
+ == Database Setup ==
21
+
22
+ Database must be manually created using a separate command. Read the rake task
23
+ for creating tables and change the db name, user and passwords accordingly.
24
+
25
+ == Tested Database Server version ==
26
+
27
+ This is tested against DB2 v9.1 in Ubuntu Feisty Fawn (7.04)
28
+
29
+ == Tested Database Client version ==
30
+
31
+ This is tested against DB2 v9.1 in Ubuntu Feisty Fawn (7.04)
32
+
33
+
data/Rakefile ADDED
@@ -0,0 +1,65 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/clean'
4
+ require 'rake/testtask'
5
+ require 'rake/rdoctask'
6
+ require 'rake/packagetask'
7
+ require 'rake/gempackagetask'
8
+ require 'rake/contrib/rubyforgepublisher'
9
+ require 'fileutils'
10
+ require 'hoe'
11
+ include FileUtils
12
+ require File.join(File.dirname(__FILE__), 'lib', 'composite_primary_keys', 'version')
13
+
14
+ AUTHOR = "Dr Nic Williams"
15
+ EMAIL = "drnicwilliams@gmail.com"
16
+ DESCRIPTION = "Composite key support for ActiveRecords"
17
+ GEM_NAME = "composite_primary_keys" # what ppl will type to install your gem
18
+ if File.exists?("~/.rubyforge/user-config.yml")
19
+ # TODO this should prob go in a local/ file
20
+ config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
21
+ RUBYFORGE_USERNAME = config["username"]
22
+ end
23
+ RUBYFORGE_PROJECT = "compositekeys"
24
+ HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
25
+
26
+ REV = nil #File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil
27
+ VERS = ENV['VERSION'] || (CompositePrimaryKeys::VERSION::STRING + (REV ? ".#{REV}" : ""))
28
+ CLEAN.include ['**/.*.sw?', '*.gem', '.config','debug.log','*.db','logfile','log/**/*','**/.DS_Store', '.project']
29
+ RDOC_OPTS = ['--quiet', '--title', "newgem documentation",
30
+ "--opname", "index.html",
31
+ "--line-numbers",
32
+ "--main", "README",
33
+ "--inline-source"]
34
+
35
+ class Hoe
36
+ def extra_deps
37
+ @extra_deps.reject { |x| Array(x).first == 'hoe' }
38
+ end
39
+ end
40
+
41
+ # Generate all the Rake tasks
42
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
43
+ hoe = Hoe.new(GEM_NAME, VERS) do |p|
44
+ p.author = AUTHOR
45
+ p.description = DESCRIPTION
46
+ p.email = EMAIL
47
+ p.summary = DESCRIPTION
48
+ p.url = HOMEPATH
49
+ p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
50
+ p.test_globs = ["test/**/test*.rb"]
51
+ p.clean_globs |= CLEAN #An array of file patterns to delete on clean.
52
+
53
+ # == Optional
54
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
55
+ p.extra_deps = [['activerecord', '>= 2.3.2']] #An array of rubygem dependencies.
56
+ #p.spec_extras - A hash of extra values to set in the gemspec.
57
+ end
58
+
59
+ CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\n\n")
60
+ PATH = RUBYFORGE_PROJECT
61
+ hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
62
+
63
+ PROJECT_ROOT = File.expand_path(".")
64
+
65
+ require 'loader'
data/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ # Include hook code here
2
+ require_dependency 'composite_primary_keys'
data/install.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'rbconfig'
2
+ require 'find'
3
+ require 'ftools'
4
+
5
+ include Config
6
+
7
+ # this was adapted from rdoc's install.rb by ways of Log4r
8
+
9
+ $sitedir = CONFIG["sitelibdir"]
10
+ unless $sitedir
11
+ version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"]
12
+ $libdir = File.join(CONFIG["libdir"], "ruby", version)
13
+ $sitedir = $:.find {|x| x =~ /site_ruby/ }
14
+ if !$sitedir
15
+ $sitedir = File.join($libdir, "site_ruby")
16
+ elsif $sitedir !~ Regexp.quote(version)
17
+ $sitedir = File.join($sitedir, version)
18
+ end
19
+ end
20
+
21
+ # the acual gruntwork
22
+ Dir.chdir("lib")
23
+
24
+ Find.find("composite_primary_keys", "composite_primary_keys.rb") { |f|
25
+ if f[-3..-1] == ".rb"
26
+ File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true)
27
+ else
28
+ File::makedirs(File.join($sitedir, *f.split(/\//)))
29
+ end
30
+ }