has_many_polymorphs 2.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.
- 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
|