composite_primary_keys 0.7.5 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/Manifest.txt +75 -0
  2. data/Rakefile +83 -101
  3. data/lib/composite_primary_keys.rb +8 -0
  4. data/lib/composite_primary_keys/associations.rb +66 -18
  5. data/lib/composite_primary_keys/base.rb +169 -159
  6. data/lib/composite_primary_keys/calculations.rb +63 -0
  7. data/lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb +11 -0
  8. data/lib/composite_primary_keys/version.rb +2 -2
  9. data/scripts/txt2html +4 -2
  10. data/scripts/txt2js +3 -2
  11. data/test/abstract_unit.rb +9 -2
  12. data/test/connections/native_mysql/connection.rb +5 -2
  13. data/test/connections/native_postgresql/connection.rb +15 -0
  14. data/test/connections/native_sqlite/connection.rb +10 -0
  15. data/test/fixtures/db_definitions/mysql.sql +20 -0
  16. data/test/fixtures/db_definitions/postgresql.sql +100 -0
  17. data/test/fixtures/db_definitions/sqlite.sql +84 -0
  18. data/test/fixtures/group.rb +3 -0
  19. data/test/fixtures/groups.yml +3 -0
  20. data/test/fixtures/membership.rb +7 -0
  21. data/test/fixtures/membership_status.rb +3 -0
  22. data/test/fixtures/membership_statuses.yml +8 -0
  23. data/test/fixtures/memberships.yml +6 -0
  24. data/test/{associations_test.rb → test_associations.rb} +22 -12
  25. data/test/{attributes_test.rb → test_attributes.rb} +4 -5
  26. data/test/{clone_test.rb → test_clone.rb} +2 -3
  27. data/test/{create_test.rb → test_create.rb} +2 -3
  28. data/test/{delete_test.rb → test_delete.rb} +2 -3
  29. data/test/{dummy_test.rb → test_dummy.rb} +4 -5
  30. data/test/{find_test.rb → test_find.rb} +3 -4
  31. data/test/{ids_test.rb → test_ids.rb} +4 -4
  32. data/test/{miscellaneous_test.rb → test_miscellaneous.rb} +2 -3
  33. data/test/{pagination_test.rb → test_pagination.rb} +4 -3
  34. data/test/{santiago_test.rb → test_santiago.rb} +5 -3
  35. data/test/test_tutorial_examle.rb +29 -0
  36. data/test/{update_test.rb → test_update.rb} +2 -3
  37. data/website/index.html +267 -201
  38. data/website/index.txt +74 -70
  39. data/website/stylesheets/screen.css +33 -3
  40. data/website/version-raw.js +1 -1
  41. data/website/version.js +1 -1
  42. metadata +80 -66
  43. data/scripts/http-access2-2.0.6.gem +0 -0
  44. data/scripts/rubyforge +0 -217
  45. data/scripts/rubyforge-orig +0 -217
  46. data/test/fixtures/db_definitions/mysql.drop.sql +0 -10
@@ -1,109 +1,113 @@
1
- h1. Composite Primary Keys for Ruby on Rails/ActiveRecords
1
+ h1. Composite Primary Keys
2
+
3
+ h1. → Ruby on Rails
4
+
5
+ h1. → ActiveRecords
2
6
 
3
7
  h2. What
4
8
 
5
9
  Ruby on Rails does not support composite primary keys. This free software is an extension
6
- to the database layer of Rails - ActiveRecords - to support composite primary keys
7
- as transparently as possible.
10
+ to the database layer of Rails - "ActiveRecords":http://wiki.rubyonrails.com/rails/pages/ActiveRecord - to support composite primary keys as transparently as possible.
11
+
12
+ Any Ruby script using ActiveRecords can use Composite Primary Keys with this library.
8
13
 
9
14
  h2. Installing
10
15
 
11
- <pre syntax="ruby">gem install composite_primary_keys</pre>
16
+ <pre syntax="ruby">sudo gem install composite_primary_keys</pre>
12
17
 
13
- To prepare ActiveRecords for composite primary keys...
18
+ Rails: Add the following to the bottom of your <code>environment.rb</code> file
14
19
 
15
20
  <pre syntax="ruby">require 'composite_primary_keys'</pre>
16
21
 
17
- A class with composite primary keys would look like...
22
+ Ruby scripts: Add the following to the top of your script
23
+
24
+ <pre syntax="ruby">require 'rubygems'
25
+ require 'composite_primary_keys'</pre>
26
+
27
+ h2. The basics
18
28
 
19
- <pre syntax="ruby">class ReferenceCode < ActiveRecord::Base
29
+ A model with composite primary keys would look like...
30
+
31
+ <pre syntax="ruby">class Membership < ActiveRecord::Base
20
32
  # set_primary_keys *keys - turns on composite key functionality
21
- set_primary_keys :reference_type_id, :reference_code
22
- belongs_to :reference_type, :foreign_key => "reference_type_id"
33
+ set_primary_keys :user_id, :group_id
34
+ belongs_to :user
35
+ belongs_to :group
36
+ has_many :statuses, :class => 'MembershipStatus', :foreign_key => [:user_id, :group_id]
23
37
  end</pre>
24
38
 
39
+ A model associated with a composite key model would be defined like...
40
+
41
+ <pre syntax="ruby">class MembershipStatus < ActiveRecord::Base
42
+ belongs_to :membership, :foreign_key => [:user_id, :group_id]
43
+ end</pre>
44
+
45
+ That is, associations can include composite keys too. Nice.
46
+
47
+ h2. Demonstration of usage
25
48
 
26
- Take two classes - <code syntax="ruby">ReferenceType</code> and <code syntax="ruby">ReferenceCode</code>
27
- - where ReferenceCode has a *composite primary key*,
28
- one of which is a foreign key to a parent ReferenceType.
49
+ Once you've created your models to specify composite primary keys (such as the Membership class) and associations (such as MembershipStatus#membership), you can uses them like any normal model with associations.
29
50
 
30
- <pre syntax="ruby">ReferenceType.primary_key
31
- => "reference_type_id" # normal single key
32
- ReferenceCode.primary_key
33
- => [:reference_type_id, :reference_code] # composite keys
34
- ReferenceCode.primary_key.to_s
35
- => "reference_type_id,reference_code"</pre>
51
+ But first, lets check out our primary keys.
52
+
53
+ <pre syntax="ruby">MembershipStatus.primary_key # => "id" # normal single key
54
+ Membership.primary_key # => [:user_id, :group_id] # composite keys
55
+ Membership.primary_key.to_s # => "user_id,group_id"</pre>
36
56
 
37
57
  Now we want to be able to find instances using the same syntax we always use for ActiveRecords...
38
58
 
39
- <pre syntax="ruby">ReferenceType.find 1 # single id returns single instance
40
- => <ReferenceType:0x392a8c8 @attributes={"reference_type_id"=>"1",
41
- "abbreviation"=>"Name Prefix", "type_label"=>"NAME_PREFIX"}>
42
- ReferenceCode.find 1,1 # composite ids returns single instance
43
- => <ReferenceCode:0x39218b0 @attributes={"reference_type_id"=>"1",
44
- "code_label"=>"MR", "abbreviation"=>"Mr", "reference_code"=>"1"}></pre>
59
+ <pre syntax="ruby">MembershipStatus.find(1) # single id returns single instance
60
+ => <MembershipStatus:0x392a8c8 @attributes={"id"=>"1", "status"=>"Active"}>
61
+ Membership.find(1,1) # composite ids returns single instance
62
+ => <Membership:0x39218b0 @attributes={"user_id"=>"1", "group_id"=>"1"}></pre>
45
63
 
46
64
  Using "Ruby on Rails":http://www.rubyonrails.org? You'll want to your url_for helpers
47
65
  to convert composite keys into strings and back again...
48
66
 
49
- <pre syntax="ruby">param_id = ReferenceCode.find_first.to_param
50
- => "1,1"
51
- ReferenceCode.find param_id
52
- => => <ReferenceCode:0x3904288 @attributes={"reference_type_id"=>"1",
53
- "code_label"=>"MR", "abbreviation"=>"Mr", "reference_code"=>"1"}></pre>
67
+ <pre syntax="ruby">Membership.find(:first).to_param # => "1,1"</pre>
54
68
 
55
- That is, an ActiveRecord supporting composite keys should behave transparently
56
- throughout your application.
69
+ And then use the string id within your controller to find the object again
57
70
 
71
+ <pre syntax="ruby">params[:id] # => '1,1'
72
+ Membership.find(params[:id])
73
+ => <Membership:0x3904288 @attributes={"user_id"=>"1", "group_id"=>"1"}></pre>
58
74
 
75
+ That is, an ActiveRecord supporting composite keys behaves transparently
76
+ throughout your application. Just like a normal ActiveRecord.
59
77
 
60
- h2. Associations/Composite Foreign Keys
61
78
 
62
- The <code syntax="ruby">has_many, has_one</code>, and <code syntax="ruby">belongs_to</code>
63
- associations allow for composite foreign keys.
79
+ h2. Other tricks
64
80
 
65
- <pre syntax="ruby">
66
- class Product < ActiveRecord::Base
67
- set_primary_key :id # redundant
68
- has_many :product_tariffs, :foreign_key => :product_id
69
- has_many :tariffs, :through => :product_tariffs, :foreign_key => :product_id
70
- end
71
- class ProductTariff < ActiveRecord::Base
72
- set_primary_keys :product_id, :tariff_id, :tariff_start_date
73
- belongs_to :products, :foreign_key => :product_id
74
- belongs_to :tariffs, :foreign_key => [:tariff_id, :tariff_start_date]
75
- end
76
- class Tariff < ActiveRecord::Base
77
- set_primary_keys [:tariff_id, :start_date]
78
- has_many :product_tariffs, :foreign_key => [:tariff_id, :tariff_start_date]
79
- end
80
- </pre>
81
+ Pass a list of composite ids to the <code>#find</code> method
81
82
 
82
- The Tariff table has a composite primary key. Hence, the
83
- <code syntax="ruby">belongs_to</code> association from ProductTariff to Tariff
84
- (called :tariffs) must use a composite foreign key.
83
+ <pre syntax="ruby">Membership.find [1,1], [2,1]
84
+ => [
85
+ <Membership:0x394ade8 @attributes={"user_id"=>"1", "group_id"=>"1"}>,
86
+ <Membership:0x394ada0 @attributes={"user_id"=>"2", "group_id"=>"1"}>
87
+ ]</pre>
85
88
 
86
- The expression must use the :foreign_key option (NOTE, <code>:foreign_keys</code> is not currently supported)
87
- to specific the ordered list of table
88
- columns. If the column names in both tables match, then the :foreign_key
89
- option can be omitted.
89
+ Perform <code>#count</code> operations
90
90
 
91
- Similarly, the <code syntax="ruby">has_many</code> and <code syntax="ruby">has_one</code>
92
- commands require the same :foreign_key(s) options if the target table
93
- doesn't have column names that match its own primary key column names.
91
+ <pre syntax="ruby">MembershipStatus.find(:first).memberships.count # => 1</pre>
94
92
 
95
- The order of foreign keys should match the order of the primary keys in the
96
- parent table.
93
+ <a name="dbs"></a>
97
94
 
98
- h2. Other tricks
95
+ h2. Which databases?
99
96
 
100
- <pre syntax="ruby">ReferenceCode.find [2,1], [2,2] # list of composite ids
101
- => [
102
- <ReferenceCode:0x394ade8 @attributes={"reference_type_id"=>"2",
103
- "code_label"=>"MALE", "abbreviation"=>"Male", "reference_code"=>"1"}>,
104
- <ReferenceCode:0x394ada0 @attributes={"reference_type_id"=>"2",
105
- "code_label"=>"FEMALE", "abbreviation"=>"Female", "reference_code"=>"2"}>
106
- ]</pre>
97
+
98
+ A suite of unit tests have been run on the following databases supported by ActiveRecord:
99
+
100
+ |_.Database|_.Test Success|_.User feedback (since 0.8.0)|
101
+ |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
+ |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
+ |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)|
105
+ |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
+ |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
+ |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)|
108
+ |sybase |<span class=unknown>???</span> ("I can help":mailto:compositekeys@googlegroups.com?subject=Help+with+Sybase)|<span class=unknown>???</span> ("Yes!":mailto:compositekeys@googlegroups.com?subject=Sybase+is+working or "No...":mailto:compositekeys@googlegroups.com?subject=Sybase+is+failing)|
109
+ |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
+ |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)|
107
111
 
108
112
  h2. Dr Nic's Blog
109
113
 
@@ -1,5 +1,5 @@
1
1
  body {
2
- background-color: #115;
2
+ background-color: #2F30EE;
3
3
  font-family: "Georgia", sans-serif;
4
4
  font-size: 16px;
5
5
  line-height: 1.6em;
@@ -7,7 +7,7 @@ body {
7
7
  color: #eee;
8
8
  }
9
9
  h1, h2, h3, h4, h5, h6 {
10
- color: #77f;
10
+ color: #FFEDFA;
11
11
  }
12
12
  h1 {
13
13
  font-family: sans-serif;
@@ -15,6 +15,7 @@ h1 {
15
15
  font-size: 4em;
16
16
  line-height: 0.8em;
17
17
  letter-spacing: -0.1ex;
18
+ margin: 5px;
18
19
  }
19
20
  li {
20
21
  padding: 0;
@@ -37,7 +38,7 @@ blockquote {
37
38
  }
38
39
 
39
40
  #main {
40
- width: 40em;
41
+ width: 45em;
41
42
  padding: 0;
42
43
  margin: 0 auto;
43
44
  }
@@ -47,6 +48,34 @@ blockquote {
47
48
  font-size: smaller;
48
49
  }
49
50
 
51
+ table {
52
+ font-size: 90%;
53
+ line-height: 1.4em;
54
+ color: #ff8;
55
+ background-color: #111;
56
+ padding: 2px 10px 2px 10px;
57
+ border-style: dashed;
58
+ }
59
+
60
+ th {
61
+ color: #fff;
62
+ }
63
+
64
+ td {
65
+ padding: 2px 10px 2px 10px;
66
+ }
67
+
68
+ .success {
69
+ color: #0CC52B;
70
+ }
71
+
72
+ .failed {
73
+ color: #E90A1B;
74
+ }
75
+
76
+ .unknown {
77
+ color: #995000;
78
+ }
50
79
  pre, code {
51
80
  font-family: monospace;
52
81
  font-size: 90%;
@@ -75,6 +104,7 @@ pre, code {
75
104
  color: #66f;
76
105
  padding: 15px 20px 10px 20px;
77
106
  margin: 0 auto;
107
+ margin-top: 15px;
78
108
  border: 3px solid #66f;
79
109
  }
80
110
 
@@ -1,3 +1,3 @@
1
1
  // Announcement JS file
2
- var version = "0.7.4";
2
+ var version = "0.8.0";
3
3
  MagicAnnouncement.show('compositekeys', version);
@@ -1,4 +1,4 @@
1
1
  // Version JS file
2
- var version = "0.7.4";
2
+ var version = "0.8.0";
3
3
 
4
4
  document.write(" - " + version);
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ 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.7.5
7
- date: 2006-11-14 00:00:00 +01:00
8
- summary: Support for composite primary keys in ActiveRecords
6
+ version: 0.8.0
7
+ date: 2007-04-07 00:00:00 +02:00
8
+ summary: Composite key support for ActiveRecords
9
9
  require_paths:
10
10
  - lib
11
11
  email: drnicwilliams@gmail.com
12
12
  homepage: http://compositekeys.rubyforge.org
13
13
  rubyforge_project: compositekeys
14
- description: ActiveRecords only support a single primary key, preventing their use on legacy databases where tables have primary keys over 2+ columns. This solution allows an ActiveRecord to be extended to support multiple keys using the class method set_primary_keys.
15
- autorequire: composite_primary_keys
14
+ description: Composite key support for ActiveRecords
15
+ autorequire:
16
16
  default_executable:
17
17
  bindir: bin
18
18
  has_rdoc: true
@@ -25,89 +25,103 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Dr Nic Williams
30
31
  files:
32
+ - CHANGELOG
33
+ - Manifest.txt
34
+ - README
31
35
  - Rakefile
32
36
  - install.rb
33
- - README
34
- - CHANGELOG
35
37
  - lib/composite_primary_keys.rb
36
- - lib/composite_primary_keys
37
- - lib/composite_primary_keys/composite_arrays.rb
38
- - lib/composite_primary_keys/version.rb
38
+ - lib/composite_primary_keys/associations.rb
39
39
  - lib/composite_primary_keys/base.rb
40
+ - lib/composite_primary_keys/calculations.rb
41
+ - lib/composite_primary_keys/composite_arrays.rb
42
+ - lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb
40
43
  - lib/composite_primary_keys/fixtures.rb
41
44
  - lib/composite_primary_keys/reflection.rb
42
- - lib/composite_primary_keys/associations.rb
43
- - test/composite_arrays_test.rb
44
- - test/hash_tricks.rb
45
- - test/delete_test.rb
46
- - test/ids_test.rb
47
- - test/find_test.rb
48
- - test/update_test.rb
45
+ - lib/composite_primary_keys/version.rb
46
+ - scripts/txt2html
47
+ - scripts/txt2js
49
48
  - test/abstract_unit.rb
50
- - test/miscellaneous_test.rb
51
- - test/pagination_test.rb
52
- - test/dummy_test.rb
53
- - test/clone_test.rb
54
- - test/associations_test.rb
55
- - test/attributes_test.rb
56
- - test/create_test.rb
57
- - test/santiago_test.rb
58
- - test/fixtures
59
- - test/connections
60
- - test/fixtures/reference_type.rb
61
- - test/fixtures/reference_code.rb
62
- - test/fixtures/reference_types.yml
63
- - test/fixtures/reference_codes.yml
49
+ - test/composite_arrays_test.rb
50
+ - test/connections/native_mysql/connection.rb
51
+ - test/connections/native_oracle/connection.rb
52
+ - test/connections/native_postgresql/connection.rb
53
+ - test/connections/native_sqlite/connection.rb
54
+ - test/fixtures/article.rb
55
+ - test/fixtures/articles.yml
56
+ - test/fixtures/db_definitions/mysql.sql
57
+ - test/fixtures/db_definitions/postgresql.sql
58
+ - test/fixtures/db_definitions/sqlite.sql
59
+ - test/fixtures/group.rb
60
+ - test/fixtures/groups.yml
61
+ - test/fixtures/membership.rb
62
+ - test/fixtures/membership_status.rb
63
+ - test/fixtures/membership_statuses.yml
64
+ - test/fixtures/memberships.yml
64
65
  - test/fixtures/product.rb
65
66
  - test/fixtures/product_tariff.rb
66
- - test/fixtures/tariff.rb
67
- - test/fixtures/products.yml
68
- - test/fixtures/tariffs.yml
69
67
  - test/fixtures/product_tariffs.yml
68
+ - test/fixtures/products.yml
69
+ - test/fixtures/reading.rb
70
+ - test/fixtures/readings.yml
71
+ - test/fixtures/reference_code.rb
72
+ - test/fixtures/reference_codes.yml
73
+ - test/fixtures/reference_type.rb
74
+ - test/fixtures/reference_types.yml
70
75
  - test/fixtures/street.rb
71
- - test/fixtures/suburb.rb
72
76
  - test/fixtures/streets.yml
77
+ - test/fixtures/suburb.rb
73
78
  - test/fixtures/suburbs.yml
74
- - test/fixtures/article.rb
79
+ - test/fixtures/tariff.rb
80
+ - test/fixtures/tariffs.yml
75
81
  - test/fixtures/user.rb
76
- - test/fixtures/reading.rb
77
- - test/fixtures/articles.yml
78
82
  - test/fixtures/users.yml
79
- - test/fixtures/readings.yml
80
- - test/fixtures/db_definitions
81
- - test/fixtures/db_definitions/mysql.drop.sql
82
- - test/fixtures/db_definitions/mysql.sql
83
- - test/connections/native_oracle
84
- - test/connections/native_mysql
85
- - test/connections/native_oracle/connection.rb
86
- - test/connections/native_mysql/connection.rb
87
- - website/index.txt
88
- - website/template.rhtml
83
+ - test/hash_tricks.rb
84
+ - test/test_associations.rb
85
+ - test/test_attributes.rb
86
+ - test/test_clone.rb
87
+ - test/test_create.rb
88
+ - test/test_delete.rb
89
+ - test/test_dummy.rb
90
+ - test/test_find.rb
91
+ - test/test_ids.rb
92
+ - test/test_miscellaneous.rb
93
+ - test/test_pagination.rb
94
+ - test/test_santiago.rb
95
+ - test/test_tutorial_examle.rb
96
+ - test/test_update.rb
89
97
  - website/index.html
90
- - website/version.js
98
+ - website/index.txt
99
+ - website/javascripts/rounded_corners_lite.inc.js
100
+ - website/stylesheets/screen.css
91
101
  - website/template.js
92
- - website/version.txt
102
+ - website/template.rhtml
93
103
  - website/version-raw.js
94
104
  - website/version-raw.txt
95
- - website/javascripts
96
- - website/stylesheets
97
- - website/javascripts/rounded_corners_lite.inc.js
98
- - website/stylesheets/screen.css
99
- - scripts/rubyforge-orig
100
- - scripts/rubyforge
101
- - scripts/http-access2-2.0.6.gem
102
- - scripts/txt2html
103
- - scripts/txt2js
104
- test_files: []
105
+ - website/version.js
106
+ - website/version.txt
107
+ test_files:
108
+ - test/test_associations.rb
109
+ - test/test_attributes.rb
110
+ - test/test_clone.rb
111
+ - test/test_create.rb
112
+ - test/test_delete.rb
113
+ - test/test_dummy.rb
114
+ - test/test_find.rb
115
+ - test/test_ids.rb
116
+ - test/test_miscellaneous.rb
117
+ - test/test_pagination.rb
118
+ - test/test_santiago.rb
119
+ - test/test_tutorial_examle.rb
120
+ - test/test_update.rb
121
+ rdoc_options: []
122
+
123
+ extra_rdoc_files: []
105
124
 
106
- rdoc_options:
107
- - --main
108
- - README
109
- extra_rdoc_files:
110
- - README
111
125
  executables: []
112
126
 
113
127
  extensions: []