ts-xml 0.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. data/LICENSE +1 -1
  2. data/README.textile +9 -9
  3. data/lib/thinking_sphinx/xml/adapters/oracle_adapter.rb +5 -2
  4. data/lib/thinking_sphinx/xml/tasks.rb +12 -4
  5. metadata +40 -102
  6. data/features/alternate_primary_key.feature +0 -27
  7. data/features/attribute_transformation.feature +0 -22
  8. data/features/attribute_updates.feature +0 -39
  9. data/features/deleting_instances.feature +0 -67
  10. data/features/direct_attributes.feature +0 -11
  11. data/features/excerpts.feature +0 -13
  12. data/features/extensible_delta_indexing.feature +0 -9
  13. data/features/facets.feature +0 -82
  14. data/features/facets_across_model.feature +0 -29
  15. data/features/handling_edits.feature +0 -92
  16. data/features/retry_stale_indexes.feature +0 -24
  17. data/features/searching_across_models.feature +0 -20
  18. data/features/searching_by_index.feature +0 -40
  19. data/features/searching_by_model.feature +0 -175
  20. data/features/searching_with_find_arguments.feature +0 -56
  21. data/features/sphinx_detection.feature +0 -25
  22. data/features/sphinx_scopes.feature +0 -42
  23. data/features/step_definitions/alpha_steps.rb +0 -7
  24. data/features/step_definitions/beta_steps.rb +0 -7
  25. data/features/step_definitions/common_steps.rb +0 -188
  26. data/features/step_definitions/extensible_delta_indexing_steps.rb +0 -7
  27. data/features/step_definitions/facet_steps.rb +0 -96
  28. data/features/step_definitions/find_arguments_steps.rb +0 -36
  29. data/features/step_definitions/gamma_steps.rb +0 -15
  30. data/features/step_definitions/scope_steps.rb +0 -15
  31. data/features/step_definitions/search_steps.rb +0 -89
  32. data/features/step_definitions/sphinx_steps.rb +0 -35
  33. data/features/sti_searching.feature +0 -19
  34. data/features/support/database.example.yml +0 -3
  35. data/features/support/db/fixtures/alphas.rb +0 -10
  36. data/features/support/db/fixtures/authors.rb +0 -1
  37. data/features/support/db/fixtures/betas.rb +0 -10
  38. data/features/support/db/fixtures/boxes.rb +0 -9
  39. data/features/support/db/fixtures/categories.rb +0 -1
  40. data/features/support/db/fixtures/cats.rb +0 -3
  41. data/features/support/db/fixtures/comments.rb +0 -24
  42. data/features/support/db/fixtures/developers.rb +0 -29
  43. data/features/support/db/fixtures/dogs.rb +0 -3
  44. data/features/support/db/fixtures/extensible_betas.rb +0 -10
  45. data/features/support/db/fixtures/foxes.rb +0 -3
  46. data/features/support/db/fixtures/gammas.rb +0 -10
  47. data/features/support/db/fixtures/people.rb +0 -1001
  48. data/features/support/db/fixtures/posts.rb +0 -6
  49. data/features/support/db/fixtures/robots.rb +0 -14
  50. data/features/support/db/fixtures/tags.rb +0 -27
  51. data/features/support/db/migrations/create_alphas.rb +0 -7
  52. data/features/support/db/migrations/create_animals.rb +0 -5
  53. data/features/support/db/migrations/create_authors.rb +0 -3
  54. data/features/support/db/migrations/create_authors_posts.rb +0 -6
  55. data/features/support/db/migrations/create_betas.rb +0 -5
  56. data/features/support/db/migrations/create_boxes.rb +0 -5
  57. data/features/support/db/migrations/create_categories.rb +0 -3
  58. data/features/support/db/migrations/create_comments.rb +0 -10
  59. data/features/support/db/migrations/create_developers.rb +0 -9
  60. data/features/support/db/migrations/create_extensible_betas.rb +0 -5
  61. data/features/support/db/migrations/create_gammas.rb +0 -3
  62. data/features/support/db/migrations/create_people.rb +0 -13
  63. data/features/support/db/migrations/create_posts.rb +0 -5
  64. data/features/support/db/migrations/create_robots.rb +0 -4
  65. data/features/support/db/migrations/create_taggings.rb +0 -5
  66. data/features/support/db/migrations/create_tags.rb +0 -4
  67. data/features/support/env.rb +0 -21
  68. data/features/support/lib/generic_delta_handler.rb +0 -8
  69. data/features/support/models/alpha.rb +0 -21
  70. data/features/support/models/animal.rb +0 -5
  71. data/features/support/models/author.rb +0 -3
  72. data/features/support/models/beta.rb +0 -8
  73. data/features/support/models/box.rb +0 -8
  74. data/features/support/models/cat.rb +0 -3
  75. data/features/support/models/category.rb +0 -4
  76. data/features/support/models/comment.rb +0 -10
  77. data/features/support/models/developer.rb +0 -16
  78. data/features/support/models/dog.rb +0 -3
  79. data/features/support/models/extensible_beta.rb +0 -9
  80. data/features/support/models/fox.rb +0 -5
  81. data/features/support/models/gamma.rb +0 -5
  82. data/features/support/models/person.rb +0 -23
  83. data/features/support/models/post.rb +0 -21
  84. data/features/support/models/robot.rb +0 -12
  85. data/features/support/models/tag.rb +0 -3
  86. data/features/support/models/tagging.rb +0 -4
@@ -1,11 +0,0 @@
1
- Feature: Direct Attributes
2
- In order to avoid unnecessary SQL queries
3
- I want to access attribute values from Sphinx's response
4
-
5
- Scenario: Accessing attribute values directly
6
- Given Sphinx is running
7
- And I am searching on posts
8
- When I search
9
- Then the first result should have a comments count of 9
10
-
11
-
@@ -1,13 +0,0 @@
1
- Feature: Generate excerpts for search results
2
-
3
- Scenario: Basic Excerpts Syntax
4
- Given Sphinx is running
5
- And I am searching on comments
6
- And I search for "lorem punto"
7
- Then the content excerpt of the first result is "de un sitio mientras que mira su diseño. El <span class="match">punto</span> de usar <span class="match">Lorem</span> Ipsum es que tiene una distribución"
8
-
9
- Scenario: Integrated Excerpts Syntax
10
- Given Sphinx is running
11
- And I am searching on comments
12
- And I search for "lorem"
13
- Then calling content on the first result excerpts object should return "de un sitio mientras que mira su diseño. El punto de usar <span class="match">Lorem</span> Ipsum es que tiene una distribución"
@@ -1,9 +0,0 @@
1
- Feature: Delayed Delta Indexing
2
- In order to have delta indexing on frequently-updated sites
3
- Developers
4
- Should be able to create their own handlers for delta indexing
5
-
6
- Scenario: I specify a valid handler for delta indexing
7
- Given Sphinx is running
8
- When I change the name of extensible beta one to eleven
9
- Then the generic delta handler should handle the delta indexing
@@ -1,82 +0,0 @@
1
- Feature: Search and browse models by their defined facets
2
-
3
- Scenario: Requesting facets
4
- Given Sphinx is running
5
- And I am searching on developers
6
- When I am requesting facet results
7
- Then I should have valid facet results
8
- And I should have 6 facets
9
- And I should have the facet State
10
- And I should have the facet Country
11
- And I should have the facet Age
12
- And I should have the facet City
13
- And I should have the facet Tag Ids
14
- And I should have the facet Tags
15
-
16
- Scenario: Requesting specific facets
17
- Given Sphinx is running
18
- And I am searching on developers
19
- When I am requesting facet results
20
- And I am requesting just the facet State
21
- Then I should have valid facet results
22
- And I should have 1 facet
23
- And I should have the facet State
24
- When I am requesting just the facets State and Age
25
- Then I should have valid facet results
26
- And I should have 2 facet
27
- And I should have the facet State
28
- And I should have the facet Age
29
-
30
- Scenario: Requseting float facets
31
- Given Sphinx is running
32
- And I am searching on alphas
33
- When I am requesting facet results
34
- Then I should have 1 facet
35
- And the Cost facet should have a 5.55 key
36
-
37
- Scenario: Requesting facet results
38
- Given Sphinx is running
39
- And I am searching on developers
40
- When I am requesting facet results
41
- And I drill down where Country is Australia
42
- Then I should get 11 results
43
-
44
- Scenario: Requesting facet results by multiple facets
45
- Given Sphinx is running
46
- And I am searching on developers
47
- When I am requesting facet results
48
- And I drill down where Country is Australia and Age is 30
49
- Then I should get 4 results
50
-
51
- Scenario: Requesting facets with classes included
52
- Given Sphinx is running
53
- And I am searching on developers
54
- When I am requesting facet results
55
- And I want classes included
56
- Then I should have valid facet results
57
- And I should have 7 facets
58
- And I should have the facet Class
59
-
60
- Scenario: Requesting MVA facets
61
- Given Sphinx is running
62
- And I am searching on developers
63
- When I am requesting facet results
64
- And I drill down where tag_ids includes the id of tag Australia
65
- Then I should get 11 results
66
- When I am requesting facet results
67
- And I drill down where tag_ids includes the id of tags Melbourne or Sydney
68
- Then I should get 5 results
69
-
70
- Scenario: Requesting MVA string facets
71
- Given Sphinx is running
72
- And I am searching on developers
73
- When I am requesting facet results
74
- Then the Tags facet should have an "Australia" key
75
- Then the Tags facet should have an "Melbourne" key
76
- Then the Tags facet should have an "Victoria" key
77
-
78
- Scenario: Requesting MVA facets from source queries
79
- Given Sphinx is running
80
- And I am searching on posts
81
- When I am requesting facet results
82
- Then the Comment Ids facet should have 9 keys
@@ -1,29 +0,0 @@
1
- Feature: Search and browse across models by their defined facets
2
-
3
- Scenario: Requesting facets across multiple models
4
- Given Sphinx is running
5
- When I am requesting facet results
6
- And I want all possible attributes
7
- Then I should have valid facet results
8
- And I should have 11 facets
9
- And I should have the facet Class
10
- And the Class facet should have a "Person" key
11
- And I should have the facet Gender
12
- And the Gender facet should have a "female" key
13
- And I should have the facet Country
14
- And I should have the facet Category Name
15
- And the Category Name facet should have a "hello" key with 10 hits
16
-
17
- Scenario: Requesting facets across models without class results
18
- Given Sphinx is running
19
- When I am requesting facet results
20
- And I want all possible attributes
21
- And I don't want classes included
22
- Then I should have 10 facets
23
- And I should not have the facet Class
24
-
25
- Scenario: Requesting facets common to all indexed models
26
- Given Sphinx is running
27
- When I am requesting facet results
28
- Then I should have the facet Class
29
- And I should have 1 facet
@@ -1,92 +0,0 @@
1
- Feature: Keeping Sphinx in line with model changes when requested
2
- In order to keep indexes as up to date as possible
3
- Thinking Sphinx
4
- Should return the expected results depending on whether delta indexes are used
5
-
6
- Scenario: Returning instance from old data if there is no delta
7
- Given Sphinx is running
8
- And I am searching on alphas
9
- When I search for two
10
- Then I should get 1 result
11
-
12
- When I change the name of alpha two to twelve
13
- And I wait for Sphinx to catch up
14
- And I search for two
15
- Then I should get 1 result
16
-
17
- Scenario: Not returing an instance from old data if there is a delta
18
- Given Sphinx is running
19
- And I am searching on betas
20
- When I search for two
21
- Then I should get 1 result
22
-
23
- When I change the name of beta two to twelve
24
- And I wait for Sphinx to catch up
25
- And I search for two
26
- Then I should get 0 results
27
-
28
- Scenario: Returning instance from new data if there is a delta
29
- Given Sphinx is running
30
- And I am searching on betas
31
- When I search for one
32
- Then I should get 1 result
33
-
34
- When I change the name of beta one to eleven
35
- And I wait for Sphinx to catch up
36
- And I search for one
37
- Then I should get 0 results
38
-
39
- When I search for eleven
40
- Then I should get 1 result
41
-
42
- Scenario: Returning new records if there's a delta
43
- Given Sphinx is running
44
- And I am searching on betas
45
- When I search for fifteen
46
- Then I should get 0 results
47
-
48
- When I create a new beta named fifteen
49
- And I wait for Sphinx to catch up
50
- And I search for fifteen
51
- Then I should get 1 result
52
-
53
- Scenario: Avoiding delta updates if there hasn't been changes
54
- Given Sphinx is running
55
- And I am searching on betas
56
- When I search for five
57
- Then I should get 1 result
58
-
59
- When I change the name of beta five to five
60
- And I wait for Sphinx to catch up
61
- And I search for five
62
- Then I should get 1 result
63
-
64
- When I search for the document id of beta five in the beta_core index
65
- Then it should exist if using Rails 2.1 or newer
66
- When I search for the document id of beta five in the beta_delta index
67
- Then it should not exist if using Rails 2.1 or newer
68
-
69
- Scenario: Handling edits with a delta when Sphinx isn't running
70
- Given Sphinx is running
71
- And I am searching on betas
72
- When I stop Sphinx
73
- And I change the name of beta six to sixteen
74
- And I start Sphinx
75
- And I search for sixteen
76
- Then I should get 1 result
77
-
78
- Scenario: Handling edits when updates are disabled
79
- Given Sphinx is running
80
- And updates are disabled
81
- And I am searching on betas
82
-
83
- When I search for seven
84
- Then I should get 1 result
85
-
86
- When I change the name of beta seven to seventeen
87
- And I wait for Sphinx to catch up
88
- And I search for seven
89
- Then I should get 1 result
90
-
91
- When I search for seventeen
92
- Then I should get 0 results
@@ -1,24 +0,0 @@
1
- Feature: Manually updating Sphinx indexes to handle uncaught deletions
2
- In order to keep indexes as up to date as possible
3
- Thinking Sphinx
4
- Should automatically update the indexes and retry the search if it gets a nil result
5
-
6
- Scenario: Changing retry_stale settings
7
- Given Sphinx is running
8
- And I am searching on gammas
9
- Then I should not get 0 results
10
-
11
- When I set retry stale to false
12
- And I set per page to 1
13
- And I order by "sphinx_internal_id ASC"
14
- And I destroy gamma one without callbacks
15
- Then I should get a single result of nil
16
-
17
- When I set retry stale to 1
18
- Then I should get a single gamma result with a name of two
19
-
20
- When I destroy gamma two without callbacks
21
- Then I should get a single result of nil
22
-
23
- When I set retry stale to true
24
- Then I should get a single gamma result with a name of three
@@ -1,20 +0,0 @@
1
- Feature: Searching across multiple model
2
- In order to use Thinking Sphinx's core functionality
3
- A developer
4
- Should be able to search on multiple models
5
-
6
- Scenario: Retrieving total result count
7
- Given Sphinx is running
8
- When I search for James
9
- And I am retrieving the result count
10
- Then I should get a value of 3
11
-
12
- Scenario: Confirming existance of a document id in a given index
13
- Given Sphinx is running
14
- When I search for the document id of alpha one in the alpha_core index
15
- Then it should exist
16
-
17
- Scenario: Retrieving results from multiple models
18
- Given Sphinx is running
19
- When I search for ten
20
- Then I should get 4 results
@@ -1,40 +0,0 @@
1
- Feature: Searching within a single index
2
- In order to use Thinking Sphinx's core functionality
3
- A developer
4
- Should be able to search on a single index
5
-
6
- Scenario: Searching with alternative index
7
- Given Sphinx is running
8
- And I am searching on alphas
9
- When I order by value
10
- And I use index alternative_core
11
- Then I should get 7 results
12
-
13
- Scenario: Searching with default index
14
- Given Sphinx is running
15
- And I am searching on alphas
16
- When I order by value
17
- And I use index alpha_core
18
- Then I should get 10 results
19
-
20
- Scenario: Searching without specified index
21
- Given Sphinx is running
22
- And I am searching on alphas
23
- When I order by value
24
- Then I should get 10 results
25
-
26
- Scenario: Deleting instances from the core index
27
- Given Sphinx is running
28
- And I am searching on alphas
29
-
30
- When I create a new alpha named eleven
31
- And I process the alpha_core index
32
- And I process the alternative_core index
33
- And I wait for Sphinx to catch up
34
- And I search for eleven
35
- Then I should get 1 result
36
-
37
- When I destroy alpha eleven
38
- And I wait for Sphinx to catch up
39
- And I search for eleven
40
- Then I should get 0 results
@@ -1,175 +0,0 @@
1
- Feature: Searching on a single model
2
- In order to use Thinking Sphinx's core functionality
3
- A developer
4
- Should be able to search on a single model
5
-
6
- Scenario: Searching using a basic query
7
- Given Sphinx is running
8
- And I am searching on people
9
- When I search for James
10
- Then I should get 3 results
11
-
12
- Scenario: Searching on a specific field
13
- Given Sphinx is running
14
- And I am searching on people
15
- When I search for James on first_name
16
- Then I should get 2 results
17
-
18
- Scenario: Searching on multiple fields
19
- Given Sphinx is running
20
- And I am searching on people
21
- When I search for James on first_name
22
- And I search for Chamberlain on last_name
23
- Then I should get 1 result
24
-
25
- Scenario: Searching on association content
26
- Given Sphinx is running
27
- And I am searching on posts
28
-
29
- When I search for "Waffles"
30
- Then I should get 1 result
31
-
32
- When I search for "Turtle"
33
- Then I should get 1 result
34
-
35
- Scenario: Searching with a filter
36
- Given Sphinx is running
37
- And I am searching on alphas
38
- When I filter by 1 on value
39
- Then I should get 1 result
40
-
41
- Scenario: Searching with multiple filters
42
- Given Sphinx is running
43
- And I am searching on boxes
44
- When I filter by 2 on width
45
- And I filter by 2 on length
46
- Then I should get 1 result
47
-
48
- Scenario: Searching with a ranged time filter
49
- Given Sphinx is running
50
- And I am searching on people
51
- When I filter by birthday between 1975 and 1976
52
- Then I should get 16 results
53
-
54
- Scenario: Searching to filter multiple values on an MVA
55
- Given Sphinx is running
56
- And I am searching on boxes
57
- When I filter by 11 and 12 on dimensions
58
- Then I should get 2 results
59
- When I clear existing filters
60
- And I filter by both 11 and 12 on dimensions
61
- Then I should get 1 result
62
-
63
- Scenario: Filtering on timestamp MVAs
64
- Given Sphinx is running
65
- And I am searching on posts
66
- When I filter by 978307200 on comments_created_at
67
- Then I should get 1 result
68
-
69
- Scenario: Searching by NULL/0 values in MVAs
70
- Given Sphinx is running
71
- And I am searching on boxes
72
- When I filter by 0 on dimensions
73
- Then I should get 1 result
74
-
75
- Given Sphinx is running
76
- And I am searching on developers
77
- When I clear existing filters
78
- And I filter by 0 on tag_ids
79
- Then I should get 1 result
80
-
81
- Scenario: Searching on a MVA configured as ranged_query
82
- Given Sphinx is running
83
- And I am searching on posts
84
- When I filter by 1 on comment_ids
85
- Then I should get 1 result
86
- When I clear existing filters
87
- And I filter by both 1 and 2 on comment_ids
88
- Then I should get 1 results
89
- When I clear existing filters
90
- And I filter by 10 on comment_ids
91
- Then I should get 0 results
92
-
93
- Scenario: Searching with ordering by attribute
94
- Given Sphinx is running
95
- And I am searching on alphas
96
- When I order by value
97
- Then I should get 10 results
98
- And the value of each result should indicate order
99
-
100
- Scenario: Searching with ordering on a sortable field
101
- Given Sphinx is running
102
- And I am searching on people
103
- And I order by first_name
104
- Then I should get 20 results
105
- And the first_name of each result should indicate order
106
-
107
- Scenario: Intepreting Sphinx Internal Identifiers
108
- Given Sphinx is running
109
- And I am searching on people
110
- Then I should get 20 results
111
- And each result id should match the corresponding sphinx internal id
112
-
113
- Scenario: Retrieving weightings
114
- Given Sphinx is running
115
- And I am searching on people
116
- When I search for "Ellie Ford"
117
- And I set match mode to any
118
- Then I can iterate by result and weighting
119
-
120
- Scenario: Retrieving group counts
121
- Given Sphinx is running
122
- And I am searching on people
123
- When I group results by the birthday attribute
124
- Then I can iterate by result and count
125
-
126
- Scenario: Retrieving group values
127
- Given Sphinx is running
128
- And I am searching on people
129
- When I group results by the birthday attribute
130
- Then I can iterate by result and group
131
-
132
- Scenario: Retrieving both group values and counts
133
- Given Sphinx is running
134
- And I am searching on people
135
- When I group results by the birthday attribute
136
- Then I can iterate by result and group and count
137
-
138
- Scenario: Searching for ids
139
- Given Sphinx is running
140
- And I am searching on people
141
- When I search for Ellie
142
- And I am searching for ids
143
- Then I should have an array of integers
144
-
145
- Scenario: Search results should match Sphinx's order
146
- Given Sphinx is running
147
- And I am searching on people
148
- When I search for Ellie
149
- And I order by "sphinx_internal_id DESC"
150
- Then searching for ids should match the record ids of the normal search results
151
-
152
- Scenario: Retrieving total result count when total is less than a page
153
- Given Sphinx is running
154
- And I am searching on people
155
- When I search for James
156
- And I am retrieving the result count
157
- Then I should get a value of 3
158
-
159
- Scenario: Retrieving total result count for more than a page
160
- Given Sphinx is running
161
- And I am searching on people
162
- When I am retrieving the result count
163
- Then I should get a value of 1000
164
-
165
- Scenario: Searching with Unicode Characters
166
- Given Sphinx is running
167
- And I am searching on people
168
- When I search for "José* "
169
- Then I should get 1 result
170
-
171
- Scenario: Searching by fields from HABTM joins
172
- Given Sphinx is running
173
- And I am searching on posts
174
- When I search for "Shakespeare"
175
- Then I should get 1 result