has_many_polymorphs 2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +86 -0
- data/LICENSE +184 -0
- data/Manifest +173 -0
- data/README +205 -0
- data/Rakefile +28 -0
- data/TODO +2 -0
- data/examples/hmph.rb +69 -0
- data/generators/tagging/tagging_generator.rb +97 -0
- data/generators/tagging/templates/migration.rb +28 -0
- data/generators/tagging/templates/tag.rb +39 -0
- data/generators/tagging/templates/tag_test.rb +15 -0
- data/generators/tagging/templates/tagging.rb +16 -0
- data/generators/tagging/templates/tagging_extensions.rb +203 -0
- data/generators/tagging/templates/tagging_test.rb +85 -0
- data/generators/tagging/templates/taggings.yml +23 -0
- data/generators/tagging/templates/tags.yml +7 -0
- data/has_many_polymorphs.gemspec +36 -0
- data/init.rb +2 -0
- data/lib/has_many_polymorphs/association.rb +160 -0
- data/lib/has_many_polymorphs/autoload.rb +69 -0
- data/lib/has_many_polymorphs/base.rb +60 -0
- data/lib/has_many_polymorphs/class_methods.rb +600 -0
- data/lib/has_many_polymorphs/configuration.rb +19 -0
- data/lib/has_many_polymorphs/debugging_tools.rb +103 -0
- data/lib/has_many_polymorphs/rake_task_redefine_task.rb +35 -0
- data/lib/has_many_polymorphs/reflection.rb +58 -0
- data/lib/has_many_polymorphs/support_methods.rb +88 -0
- data/lib/has_many_polymorphs.rb +27 -0
- data/test/fixtures/bow_wows.yml +10 -0
- data/test/fixtures/cats.yml +18 -0
- data/test/fixtures/eaters_foodstuffs.yml +0 -0
- data/test/fixtures/fish.yml +12 -0
- data/test/fixtures/frogs.yml +5 -0
- data/test/fixtures/keep_your_enemies_close.yml +0 -0
- data/test/fixtures/little_whale_pupils.yml +0 -0
- data/test/fixtures/people.yml +7 -0
- data/test/fixtures/petfoods.yml +11 -0
- data/test/fixtures/whales.yml +5 -0
- data/test/fixtures/wild_boars.yml +10 -0
- data/test/generator/tagging_generator_test.rb +42 -0
- data/test/integration/app/README +182 -0
- data/test/integration/app/Rakefile +19 -0
- data/test/integration/app/app/controllers/application.rb +7 -0
- data/test/integration/app/app/controllers/bones_controller.rb +5 -0
- data/test/integration/app/app/helpers/addresses_helper.rb +2 -0
- data/test/integration/app/app/helpers/application_helper.rb +3 -0
- data/test/integration/app/app/helpers/bones_helper.rb +2 -0
- data/test/integration/app/app/helpers/sellers_helper.rb +28 -0
- data/test/integration/app/app/helpers/states_helper.rb +2 -0
- data/test/integration/app/app/helpers/users_helper.rb +2 -0
- data/test/integration/app/app/models/bone.rb +2 -0
- data/test/integration/app/app/models/double_sti_parent.rb +2 -0
- data/test/integration/app/app/models/double_sti_parent_relationship.rb +2 -0
- data/test/integration/app/app/models/organic_substance.rb +2 -0
- data/test/integration/app/app/models/single_sti_parent.rb +4 -0
- data/test/integration/app/app/models/single_sti_parent_relationship.rb +4 -0
- data/test/integration/app/app/models/stick.rb +2 -0
- data/test/integration/app/app/models/stone.rb +2 -0
- data/test/integration/app/app/views/addresses/edit.html.erb +12 -0
- data/test/integration/app/app/views/addresses/index.html.erb +18 -0
- data/test/integration/app/app/views/addresses/new.html.erb +11 -0
- data/test/integration/app/app/views/addresses/show.html.erb +3 -0
- data/test/integration/app/app/views/bones/index.rhtml +5 -0
- data/test/integration/app/app/views/layouts/addresses.html.erb +17 -0
- data/test/integration/app/app/views/layouts/sellers.html.erb +17 -0
- data/test/integration/app/app/views/layouts/states.html.erb +17 -0
- data/test/integration/app/app/views/layouts/users.html.erb +17 -0
- data/test/integration/app/app/views/sellers/edit.html.erb +12 -0
- data/test/integration/app/app/views/sellers/index.html.erb +20 -0
- data/test/integration/app/app/views/sellers/new.html.erb +11 -0
- data/test/integration/app/app/views/sellers/show.html.erb +3 -0
- data/test/integration/app/app/views/states/edit.html.erb +12 -0
- data/test/integration/app/app/views/states/index.html.erb +19 -0
- data/test/integration/app/app/views/states/new.html.erb +11 -0
- data/test/integration/app/app/views/states/show.html.erb +3 -0
- data/test/integration/app/app/views/users/edit.html.erb +12 -0
- data/test/integration/app/app/views/users/index.html.erb +22 -0
- data/test/integration/app/app/views/users/new.html.erb +11 -0
- data/test/integration/app/app/views/users/show.html.erb +3 -0
- data/test/integration/app/config/boot.rb +110 -0
- data/test/integration/app/config/database.yml +17 -0
- data/test/integration/app/config/environment.rb +19 -0
- data/test/integration/app/config/environment.rb.canonical +19 -0
- data/test/integration/app/config/environments/development.rb +9 -0
- data/test/integration/app/config/environments/production.rb +18 -0
- data/test/integration/app/config/environments/test.rb +19 -0
- data/test/integration/app/config/locomotive.yml +6 -0
- data/test/integration/app/config/routes.rb +33 -0
- data/test/integration/app/config/ultrasphinx/default.base +56 -0
- data/test/integration/app/config/ultrasphinx/development.conf.canonical +155 -0
- data/test/integration/app/db/migrate/001_create_sticks.rb +11 -0
- data/test/integration/app/db/migrate/002_create_stones.rb +11 -0
- data/test/integration/app/db/migrate/003_create_organic_substances.rb +11 -0
- data/test/integration/app/db/migrate/004_create_bones.rb +8 -0
- data/test/integration/app/db/migrate/005_create_single_sti_parents.rb +11 -0
- data/test/integration/app/db/migrate/006_create_double_sti_parents.rb +11 -0
- data/test/integration/app/db/migrate/007_create_single_sti_parent_relationships.rb +13 -0
- data/test/integration/app/db/migrate/008_create_double_sti_parent_relationships.rb +14 -0
- data/test/integration/app/db/migrate/009_create_library_model.rb +11 -0
- data/test/integration/app/doc/README_FOR_APP +2 -0
- data/test/integration/app/generators/commenting_generator_test.rb +83 -0
- data/test/integration/app/lib/library_model.rb +2 -0
- data/test/integration/app/public/404.html +30 -0
- data/test/integration/app/public/500.html +30 -0
- data/test/integration/app/public/dispatch.cgi +10 -0
- data/test/integration/app/public/dispatch.fcgi +24 -0
- data/test/integration/app/public/dispatch.rb +10 -0
- data/test/integration/app/public/favicon.ico +0 -0
- data/test/integration/app/public/images/rails.png +0 -0
- data/test/integration/app/public/index.html +277 -0
- data/test/integration/app/public/javascripts/application.js +2 -0
- data/test/integration/app/public/javascripts/controls.js +833 -0
- data/test/integration/app/public/javascripts/dragdrop.js +942 -0
- data/test/integration/app/public/javascripts/effects.js +1088 -0
- data/test/integration/app/public/javascripts/prototype.js +2515 -0
- data/test/integration/app/public/robots.txt +1 -0
- data/test/integration/app/public/stylesheets/scaffold.css +74 -0
- data/test/integration/app/script/about +3 -0
- data/test/integration/app/script/breakpointer +3 -0
- data/test/integration/app/script/console +3 -0
- data/test/integration/app/script/destroy +3 -0
- data/test/integration/app/script/generate +3 -0
- data/test/integration/app/script/performance/benchmarker +3 -0
- data/test/integration/app/script/performance/profiler +3 -0
- data/test/integration/app/script/plugin +3 -0
- data/test/integration/app/script/process/inspector +3 -0
- data/test/integration/app/script/process/reaper +3 -0
- data/test/integration/app/script/process/spawner +3 -0
- data/test/integration/app/script/runner +3 -0
- data/test/integration/app/script/server +3 -0
- data/test/integration/app/test/fixtures/double_sti_parent_relationships.yml +7 -0
- data/test/integration/app/test/fixtures/double_sti_parents.yml +7 -0
- data/test/integration/app/test/fixtures/organic_substances.yml +5 -0
- data/test/integration/app/test/fixtures/single_sti_parent_relationships.yml +7 -0
- data/test/integration/app/test/fixtures/single_sti_parents.yml +7 -0
- data/test/integration/app/test/fixtures/sticks.yml +7 -0
- data/test/integration/app/test/fixtures/stones.yml +7 -0
- data/test/integration/app/test/functional/addresses_controller_test.rb +57 -0
- data/test/integration/app/test/functional/bones_controller_test.rb +8 -0
- data/test/integration/app/test/functional/sellers_controller_test.rb +57 -0
- data/test/integration/app/test/functional/states_controller_test.rb +57 -0
- data/test/integration/app/test/functional/users_controller_test.rb +57 -0
- data/test/integration/app/test/test_helper.rb +8 -0
- data/test/integration/app/test/unit/bone_test.rb +8 -0
- data/test/integration/app/test/unit/double_sti_parent_relationship_test.rb +8 -0
- data/test/integration/app/test/unit/double_sti_parent_test.rb +8 -0
- data/test/integration/app/test/unit/organic_substance_test.rb +8 -0
- data/test/integration/app/test/unit/single_sti_parent_relationship_test.rb +8 -0
- data/test/integration/app/test/unit/single_sti_parent_test.rb +8 -0
- data/test/integration/app/test/unit/stick_test.rb +8 -0
- data/test/integration/app/test/unit/stone_test.rb +8 -0
- data/test/integration/server_test.rb +43 -0
- data/test/models/aquatic/fish.rb +5 -0
- data/test/models/aquatic/pupils_whale.rb +7 -0
- data/test/models/aquatic/whale.rb +15 -0
- data/test/models/beautiful_fight_relationship.rb +26 -0
- data/test/models/canine.rb +9 -0
- data/test/models/cat.rb +5 -0
- data/test/models/dog.rb +18 -0
- data/test/models/eaters_foodstuff.rb +8 -0
- data/test/models/frog.rb +4 -0
- data/test/models/kitten.rb +3 -0
- data/test/models/parentship.rb +4 -0
- data/test/models/person.rb +9 -0
- data/test/models/petfood.rb +39 -0
- data/test/models/tabby.rb +2 -0
- data/test/models/wild_boar.rb +3 -0
- data/test/modules/extension_module.rb +9 -0
- data/test/modules/other_extension_module.rb +9 -0
- data/test/patches/symlinked_plugins_1.2.6.diff +46 -0
- data/test/schema.rb +87 -0
- data/test/setup.rb +14 -0
- data/test/test_helper.rb +52 -0
- data/test/unit/has_many_polymorphs_test.rb +713 -0
- data.tar.gz.sig +1 -0
- metadata +279 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
#
|
2
|
+
# Sphinx/Ultrasphinx user-configurable options.
|
3
|
+
#
|
4
|
+
# Copy this file to RAILS_ROOT/config/ultrasphinx.
|
5
|
+
# You can use individual namespaces if you want (e.g. "development.base").
|
6
|
+
#
|
7
|
+
|
8
|
+
indexer
|
9
|
+
{
|
10
|
+
# Indexer running options
|
11
|
+
mem_limit = 256M
|
12
|
+
}
|
13
|
+
|
14
|
+
searchd
|
15
|
+
{
|
16
|
+
# Daemon options
|
17
|
+
# What interface the search daemon should listen on and where to store its logs
|
18
|
+
address = 0.0.0.0
|
19
|
+
port = 3313
|
20
|
+
log = /tmp/sphinx/searchd.log
|
21
|
+
query_log = /tmp/sphinx/query.log
|
22
|
+
read_timeout = 5
|
23
|
+
max_children = 300
|
24
|
+
pid_file = /tmp/sphinx/searchd.pid
|
25
|
+
max_matches = 100000
|
26
|
+
}
|
27
|
+
|
28
|
+
client
|
29
|
+
{
|
30
|
+
# Client options
|
31
|
+
dictionary_name = ts
|
32
|
+
# How your application connects to the search daemon (not necessarily the same as above)
|
33
|
+
server_host = localhost
|
34
|
+
server_port = 3313
|
35
|
+
}
|
36
|
+
|
37
|
+
source
|
38
|
+
{
|
39
|
+
# Individual SQL source options
|
40
|
+
sql_range_step = 20000
|
41
|
+
strip_html = 0
|
42
|
+
index_html_attrs =
|
43
|
+
sql_query_post =
|
44
|
+
}
|
45
|
+
|
46
|
+
index
|
47
|
+
{
|
48
|
+
# Index building options
|
49
|
+
path = /tmp/sphinx/
|
50
|
+
docinfo = extern # just leave this alone
|
51
|
+
morphology = stem_en
|
52
|
+
stopwords = # /path/to/stopwords.txt
|
53
|
+
min_word_len = 1
|
54
|
+
charset_type = utf-8 # or sbcs (Single Byte Character Set)
|
55
|
+
charset_table = 0..9, A..Z->a..z, -, _, ., &, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F,U+C5->U+E5, U+E5, U+C4->U+E4, U+E4, U+D6->U+F6, U+F6, U+16B, U+0c1->a, U+0c4->a, U+0c9->e, U+0cd->i, U+0d3->o, U+0d4->o, U+0da->u, U+0dd->y, U+0e1->a, U+0e4->a, U+0e9->e, U+0ed->i, U+0f3->o, U+0f4->o, U+0fa->u, U+0fd->y, U+104->U+105, U+105, U+106->U+107, U+10c->c, U+10d->c, U+10e->d, U+10f->d, U+116->U+117, U+117, U+118->U+119, U+11a->e, U+11b->e, U+12E->U+12F, U+12F, U+139->l, U+13a->l, U+13d->l, U+13e->l, U+141->U+142, U+142, U+143->U+144, U+144,U+147->n, U+148->n, U+154->r, U+155->r, U+158->r, U+159->r, U+15A->U+15B, U+15B, U+160->s, U+160->U+161, U+161->s, U+164->t, U+165->t, U+16A->U+16B, U+16B, U+16e->u, U+16f->u, U+172->U+173, U+173, U+179->U+17A, U+17A, U+17B->U+17C, U+17C, U+17d->z, U+17e->z,
|
56
|
+
}
|
@@ -0,0 +1,155 @@
|
|
1
|
+
|
2
|
+
# Auto-generated at Wed Oct 03 03:57:12 -0400 2007.
|
3
|
+
# Hand modifications will be overwritten.
|
4
|
+
# /Users/eweaver/Desktop/projects/chow/vendor/plugins/ultrasphinx/test/integration/app/config/ultrasphinx/default.base
|
5
|
+
indexer {
|
6
|
+
mem_limit = 256M
|
7
|
+
}
|
8
|
+
searchd {
|
9
|
+
read_timeout = 5
|
10
|
+
max_children = 300
|
11
|
+
log = /tmp/sphinx/searchd.log
|
12
|
+
port = 3313
|
13
|
+
max_matches = 100000
|
14
|
+
query_log = /tmp/sphinx/query.log
|
15
|
+
pid_file = /tmp/sphinx/searchd.pid
|
16
|
+
address = 0.0.0.0
|
17
|
+
}
|
18
|
+
|
19
|
+
# Source configuration
|
20
|
+
|
21
|
+
source geo__states
|
22
|
+
{
|
23
|
+
strip_html = 0
|
24
|
+
sql_range_step = 20000
|
25
|
+
index_html_attrs =
|
26
|
+
sql_query_post =
|
27
|
+
|
28
|
+
type = mysql
|
29
|
+
sql_query_pre = SET SESSION group_concat_max_len = 65535
|
30
|
+
sql_query_pre = SET NAMES utf8
|
31
|
+
|
32
|
+
sql_db = app_development
|
33
|
+
sql_host = localhost
|
34
|
+
sql_pass =
|
35
|
+
sql_user = root
|
36
|
+
sql_query_range = SELECT MIN(id), MAX(id) FROM states
|
37
|
+
sql_query = SELECT (states.id * 4 + 0) AS id, CAST(GROUP_CONCAT(addresses.name SEPARATOR ' ') AS CHAR) AS address_name, 0 AS capitalization, 'Geo::State' AS class, 0 AS class_id, '' AS company, '' AS company_name, 0 AS company_name_facet, '' AS content, UNIX_TIMESTAMP('1970-01-01 00:00:00') AS created_at, 0 AS deleted, '' AS email, '__empty_searchable__' AS empty_searchable, '' AS login, '' AS name, '' AS state, 0 AS user_id FROM states LEFT OUTER JOIN addresses ON states.id = addresses.state_id WHERE states.id >= $start AND states.id <= $end GROUP BY id
|
38
|
+
|
39
|
+
sql_group_column = capitalization
|
40
|
+
sql_group_column = class_id
|
41
|
+
sql_group_column = company_name_facet
|
42
|
+
sql_date_column = created_at
|
43
|
+
sql_group_column = deleted
|
44
|
+
sql_group_column = user_id
|
45
|
+
sql_query_info = SELECT * FROM states WHERE states.id = (($id - 0) / 4)
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
# Source configuration
|
50
|
+
|
51
|
+
source sellers
|
52
|
+
{
|
53
|
+
strip_html = 0
|
54
|
+
sql_range_step = 20000
|
55
|
+
index_html_attrs =
|
56
|
+
sql_query_post =
|
57
|
+
|
58
|
+
type = mysql
|
59
|
+
sql_query_pre = SET SESSION group_concat_max_len = 65535
|
60
|
+
sql_query_pre = SET NAMES utf8
|
61
|
+
|
62
|
+
sql_db = app_development
|
63
|
+
sql_host = localhost
|
64
|
+
sql_pass =
|
65
|
+
sql_user = root
|
66
|
+
sql_query_range = SELECT MIN(id), MAX(id) FROM sellers
|
67
|
+
sql_query = SELECT (sellers.id * 4 + 1) AS id, '' AS address_name, sellers.capitalization AS capitalization, 'Seller' AS class, 1 AS class_id, '' AS company, sellers.company_name AS company_name, CRC32(sellers.company_name) AS company_name_facet, '' AS content, UNIX_TIMESTAMP(sellers.created_at) AS created_at, 0 AS deleted, '' AS email, '__empty_searchable__' AS empty_searchable, '' AS login, '' AS name, '' AS state, sellers.user_id AS user_id FROM sellers WHERE sellers.id >= $start AND sellers.id <= $end GROUP BY id
|
68
|
+
|
69
|
+
sql_group_column = capitalization
|
70
|
+
sql_group_column = class_id
|
71
|
+
sql_group_column = company_name_facet
|
72
|
+
sql_date_column = created_at
|
73
|
+
sql_group_column = deleted
|
74
|
+
sql_group_column = user_id
|
75
|
+
sql_query_info = SELECT * FROM sellers WHERE sellers.id = (($id - 1) / 4)
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
# Source configuration
|
80
|
+
|
81
|
+
source geo__addresses
|
82
|
+
{
|
83
|
+
strip_html = 0
|
84
|
+
sql_range_step = 20000
|
85
|
+
index_html_attrs =
|
86
|
+
sql_query_post =
|
87
|
+
|
88
|
+
type = mysql
|
89
|
+
sql_query_pre = SET SESSION group_concat_max_len = 65535
|
90
|
+
sql_query_pre = SET NAMES utf8
|
91
|
+
|
92
|
+
sql_db = app_development
|
93
|
+
sql_host = localhost
|
94
|
+
sql_pass =
|
95
|
+
sql_user = root
|
96
|
+
sql_query_range = SELECT MIN(id), MAX(id) FROM addresses
|
97
|
+
sql_query = SELECT (addresses.id * 4 + 2) AS id, '' AS address_name, 0 AS capitalization, 'Geo::Address' AS class, 2 AS class_id, '' AS company, '' AS company_name, 0 AS company_name_facet, CONCAT_WS(' ', addresses.line_1, addresses.line_2, addresses.city, addresses.province_region, addresses.zip_postal_code) AS content, UNIX_TIMESTAMP('1970-01-01 00:00:00') AS created_at, 0 AS deleted, '' AS email, '__empty_searchable__' AS empty_searchable, '' AS login, addresses.name AS name, states.name AS state, 0 AS user_id FROM addresses LEFT OUTER JOIN states ON states.id = addresses.state_id WHERE addresses.id >= $start AND addresses.id <= $end GROUP BY id
|
98
|
+
|
99
|
+
sql_group_column = capitalization
|
100
|
+
sql_group_column = class_id
|
101
|
+
sql_group_column = company_name_facet
|
102
|
+
sql_date_column = created_at
|
103
|
+
sql_group_column = deleted
|
104
|
+
sql_group_column = user_id
|
105
|
+
sql_query_info = SELECT * FROM addresses WHERE addresses.id = (($id - 2) / 4)
|
106
|
+
}
|
107
|
+
|
108
|
+
|
109
|
+
# Source configuration
|
110
|
+
|
111
|
+
source users
|
112
|
+
{
|
113
|
+
strip_html = 0
|
114
|
+
sql_range_step = 20000
|
115
|
+
index_html_attrs =
|
116
|
+
sql_query_post =
|
117
|
+
|
118
|
+
type = mysql
|
119
|
+
sql_query_pre = SET SESSION group_concat_max_len = 65535
|
120
|
+
sql_query_pre = SET NAMES utf8
|
121
|
+
|
122
|
+
sql_db = app_development
|
123
|
+
sql_host = localhost
|
124
|
+
sql_pass =
|
125
|
+
sql_user = root
|
126
|
+
sql_query_range = SELECT MIN(id), MAX(id) FROM users
|
127
|
+
sql_query = SELECT (users.id * 4 + 3) AS id, '' AS address_name, 0 AS capitalization, 'User' AS class, 3 AS class_id, sellers.company_name AS company, '' AS company_name, 0 AS company_name_facet, '' AS content, UNIX_TIMESTAMP('1970-01-01 00:00:00') AS created_at, users.deleted AS deleted, users.email AS email, '__empty_searchable__' AS empty_searchable, users.login AS login, '' AS name, '' AS state, 0 AS user_id FROM users LEFT OUTER JOIN sellers ON users.id = sellers.user_id WHERE users.id >= $start AND users.id <= $end AND (deleted = 0) GROUP BY id
|
128
|
+
|
129
|
+
sql_group_column = capitalization
|
130
|
+
sql_group_column = class_id
|
131
|
+
sql_group_column = company_name_facet
|
132
|
+
sql_date_column = created_at
|
133
|
+
sql_group_column = deleted
|
134
|
+
sql_group_column = user_id
|
135
|
+
sql_query_info = SELECT * FROM users WHERE users.id = (($id - 3) / 4)
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
# Index configuration
|
140
|
+
|
141
|
+
index complete
|
142
|
+
{
|
143
|
+
source = geo__addresses
|
144
|
+
source = geo__states
|
145
|
+
source = sellers
|
146
|
+
source = users
|
147
|
+
charset_type = utf-8
|
148
|
+
charset_table = 0..9, A..Z->a..z, -, _, ., &, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F,U+C5->U+E5, U+E5, U+C4->U+E4, U+E4, U+D6->U+F6, U+F6, U+16B, U+0c1->a, U+0c4->a, U+0c9->e, U+0cd->i, U+0d3->o, U+0d4->o, U+0da->u, U+0dd->y, U+0e1->a, U+0e4->a, U+0e9->e, U+0ed->i, U+0f3->o, U+0f4->o, U+0fa->u, U+0fd->y, U+104->U+105, U+105, U+106->U+107, U+10c->c, U+10d->c, U+10e->d, U+10f->d, U+116->U+117, U+117, U+118->U+119, U+11a->e, U+11b->e, U+12E->U+12F, U+12F, U+139->l, U+13a->l, U+13d->l, U+13e->l, U+141->U+142, U+142, U+143->U+144, U+144,U+147->n, U+148->n, U+154->r, U+155->r, U+158->r, U+159->r, U+15A->U+15B, U+15B, U+160->s, U+160->U+161, U+161->s, U+164->t, U+165->t, U+16A->U+16B, U+16B, U+16e->u, U+16f->u, U+172->U+173, U+173, U+179->U+17A, U+17A, U+17B->U+17C, U+17C, U+17d->z, U+17e->z,
|
149
|
+
min_word_len = 1
|
150
|
+
stopwords =
|
151
|
+
path = /tmp/sphinx//sphinx_index_complete
|
152
|
+
docinfo = extern
|
153
|
+
morphology = stem_en
|
154
|
+
}
|
155
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateSingleStiParentRelationships < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :single_sti_parent_relationships do |t|
|
4
|
+
t.column :the_bone_type, :string, :null => false
|
5
|
+
t.column :the_bone_id, :integer, :null => false
|
6
|
+
t.column :single_sti_parent_id, :integer, :null => false
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.down
|
11
|
+
drop_table :single_sti_parent_relationships
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateDoubleStiParentRelationships < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :double_sti_parent_relationships do |t|
|
4
|
+
t.column :the_bone_type, :string, :null => false
|
5
|
+
t.column :the_bone_id, :integer, :null => false
|
6
|
+
t.column :parent_type, :string, :null => false
|
7
|
+
t.column :parent_id, :integer, :null => false
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.down
|
12
|
+
drop_table :double_sti_parent_relationships
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
class CommentingGeneratorTest < ActiveSupport::TestCase
|
5
|
+
|
6
|
+
def test_ensure_comments_dont_exist
|
7
|
+
# make sure the comments are already defined
|
8
|
+
assert_equal false, Object.send(:const_defined?, :Comment)
|
9
|
+
assert_equal false, Object.send(:const_defined?, :Commenting)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_ensure_files_exist_after_generator_runs
|
13
|
+
run_generator
|
14
|
+
|
15
|
+
# make sure the files are there
|
16
|
+
for generated_file in generated_files do
|
17
|
+
assert File.exists?(File.expand_path(generated_file))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_classes_exist_with_associations
|
22
|
+
run_generator
|
23
|
+
assert_nothing_raised { Commenting }
|
24
|
+
assert_nothing_raised { Comment }
|
25
|
+
citation = Citation.find(:first)
|
26
|
+
assert !citation.nil?
|
27
|
+
assert citation.respond_to?(:comments)
|
28
|
+
user = User.find(:first)
|
29
|
+
assert !user.nil?
|
30
|
+
assert user.respond_to?(:comments)
|
31
|
+
end
|
32
|
+
|
33
|
+
def teardown
|
34
|
+
Object.send(:remove_const, :Comment) if Object.send(:const_defined?, :Comment)
|
35
|
+
Object.send(:remove_const, :Commenting) if Object.send(:const_defined?, :Commenting)
|
36
|
+
remove_all_generated_files
|
37
|
+
remove_require_for_commenting_extensions
|
38
|
+
end
|
39
|
+
|
40
|
+
def generated_files
|
41
|
+
generated_files = [File.join(File.dirname(__FILE__), '..', '..', 'app', 'models', 'comment.rb')]
|
42
|
+
generated_files << File.join(File.dirname(__FILE__), '..', '..', 'app', 'models', 'commenting.rb')
|
43
|
+
generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'unit', 'commenting_test.rb')
|
44
|
+
generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'unit', 'comment_test.rb')
|
45
|
+
generated_files << File.join(File.dirname(__FILE__), '..', '..', 'lib', 'commenting_extensions.rb')
|
46
|
+
generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'fixtures', 'comments.yml')
|
47
|
+
generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'fixtures', 'commentings.yml')
|
48
|
+
end
|
49
|
+
|
50
|
+
def remove_all_generated_files
|
51
|
+
for generated_file in generated_files do
|
52
|
+
if File.exists?(generated_file)
|
53
|
+
assert FileUtils.rm(generated_file)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def run_migrate
|
59
|
+
`rake db:migrate RAILS_ENV=test`
|
60
|
+
end
|
61
|
+
|
62
|
+
def run_generator
|
63
|
+
command = File.join(File.dirname(__FILE__), '..', '..', 'script', 'generate')
|
64
|
+
`#{command} commenting Citation User`
|
65
|
+
run_migrate
|
66
|
+
end
|
67
|
+
|
68
|
+
def remove_require_for_commenting_extensions
|
69
|
+
environment = File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment.rb')
|
70
|
+
new_environment = ''
|
71
|
+
if File.exists?(environment)
|
72
|
+
if (open(environment) { |file| file.grep(/Rails/).any? })
|
73
|
+
IO.readlines(environment).each do |line|
|
74
|
+
new_environment += line unless line.match(/commenting_extensions/i)
|
75
|
+
end
|
76
|
+
File.open(environment, "w+") do |f|
|
77
|
+
f.pos = 0
|
78
|
+
f.print new_environment
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
|
6
|
+
<head>
|
7
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
8
|
+
<title>The page you were looking for doesn't exist (404)</title>
|
9
|
+
<style type="text/css">
|
10
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
11
|
+
div.dialog {
|
12
|
+
width: 25em;
|
13
|
+
padding: 0 4em;
|
14
|
+
margin: 4em auto 0 auto;
|
15
|
+
border: 1px solid #ccc;
|
16
|
+
border-right-color: #999;
|
17
|
+
border-bottom-color: #999;
|
18
|
+
}
|
19
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
20
|
+
</style>
|
21
|
+
</head>
|
22
|
+
|
23
|
+
<body>
|
24
|
+
<!-- This file lives in public/404.html -->
|
25
|
+
<div class="dialog">
|
26
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
27
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
28
|
+
</div>
|
29
|
+
</body>
|
30
|
+
</html>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
|
6
|
+
<head>
|
7
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
8
|
+
<title>We're sorry, but something went wrong</title>
|
9
|
+
<style type="text/css">
|
10
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
11
|
+
div.dialog {
|
12
|
+
width: 25em;
|
13
|
+
padding: 0 4em;
|
14
|
+
margin: 4em auto 0 auto;
|
15
|
+
border: 1px solid #ccc;
|
16
|
+
border-right-color: #999;
|
17
|
+
border-bottom-color: #999;
|
18
|
+
}
|
19
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
20
|
+
</style>
|
21
|
+
</head>
|
22
|
+
|
23
|
+
<body>
|
24
|
+
<!-- This file lives in public/500.html -->
|
25
|
+
<div class="dialog">
|
26
|
+
<h1>We're sorry, but something went wrong.</h1>
|
27
|
+
<p>We've been notified about this issue and we'll take a look at it shortly.</p>
|
28
|
+
</div>
|
29
|
+
</body>
|
30
|
+
</html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
|
4
|
+
|
5
|
+
# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
|
6
|
+
# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
|
7
|
+
require "dispatcher"
|
8
|
+
|
9
|
+
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
|
10
|
+
Dispatcher.dispatch
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# You may specify the path to the FastCGI crash log (a log of unhandled
|
4
|
+
# exceptions which forced the FastCGI instance to exit, great for debugging)
|
5
|
+
# and the number of requests to process before running garbage collection.
|
6
|
+
#
|
7
|
+
# By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
|
8
|
+
# and the GC period is nil (turned off). A reasonable number of requests
|
9
|
+
# could range from 10-100 depending on the memory footprint of your app.
|
10
|
+
#
|
11
|
+
# Example:
|
12
|
+
# # Default log path, normal GC behavior.
|
13
|
+
# RailsFCGIHandler.process!
|
14
|
+
#
|
15
|
+
# # Default log path, 50 requests between GC.
|
16
|
+
# RailsFCGIHandler.process! nil, 50
|
17
|
+
#
|
18
|
+
# # Custom log path, normal GC behavior.
|
19
|
+
# RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
|
20
|
+
#
|
21
|
+
require File.dirname(__FILE__) + "/../config/environment"
|
22
|
+
require 'fcgi_handler'
|
23
|
+
|
24
|
+
RailsFCGIHandler.process!
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
|
4
|
+
|
5
|
+
# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
|
6
|
+
# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
|
7
|
+
require "dispatcher"
|
8
|
+
|
9
|
+
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
|
10
|
+
Dispatcher.dispatch
|
File without changes
|
Binary file
|