ts-xml 1.0.2 → 1.0.3

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.
@@ -15,16 +15,22 @@ In your @environment.rb@ file, with the rest of your gem dependencies:
15
15
  And add the following lines to the bottom of your @Rakefile@:
16
16
 
17
17
  <pre><code>begin
18
+ require 'thinking_sphinx'
18
19
  require 'thinking_sphinx/tasks'
20
+ require 'thinking_sphinx/xml'
19
21
  require 'thinking_sphinx/xml/tasks'
20
22
  rescue LoadError
21
- puts "Cannot load thinking sphinx tasks"
23
+ puts 'Cannot load thinking sphinx tasks'
22
24
  end</code></pre>
23
25
 
24
26
  h2. Usage
25
27
 
26
28
  Just add those lines and it will use xmlpipe2 data source instead of SQL data source.
27
29
 
30
+ h2. Limitations
31
+
32
+ Oracle CLOB data types are not supported and indexed fields are trimmed to 4000 bytes.
33
+
28
34
  h2. Copyright
29
35
 
30
36
  Copyright (c) 2010 Edgars Beigarts, and released under an MIT Licence.
data/TODO ADDED
@@ -0,0 +1,15 @@
1
+ = TODO
2
+
3
+ * Fix tag_ids
4
+
5
+ = Oracle vs ts-xml
6
+
7
+ ts-xml:
8
+ - pagaidām neatbalsta clob
9
+ - 4000 baitu limits uz laukiem
10
+ + var meklēt caur daudziem indeksiem
11
+ + var indeksēt dajebko caur xml
12
+ + var viegli nomapot Ā uz A utt
13
+ + morphology, stemming
14
+ + facets
15
+ +
@@ -1,3 +1,5 @@
1
+ require 'thinking_sphinx'
2
+ require 'thinking_sphinx/source'
1
3
  require 'thinking_sphinx/xml/source'
2
4
 
3
5
  require 'thinking_sphinx/xml/adapters/abstract_adapter'
@@ -14,7 +14,7 @@ module ThinkingSphinx
14
14
  end
15
15
 
16
16
  def group_concatenate(clause, separator = ' ')
17
- "TO_STRING(CAST(COLLECT(TO_CHAR(#{clause})) AS SYS.ODCIVARCHAR2LIST), '#{separator}')"
17
+ "TO_STRING(CAST(COLLECT(DISTINCT TO_CHAR(#{clause})) AS SYS.ODCIVARCHAR2LIST), '#{separator}')"
18
18
  end
19
19
 
20
20
  def cast_to_string(clause)
@@ -22,7 +22,7 @@ module ThinkingSphinx
22
22
  end
23
23
 
24
24
  def cast_to_datetime(clause)
25
- "STRFTIME('%s', #{clause})"
25
+ "STRFTIME('%s', #{clause}, 'utc')"
26
26
  end
27
27
 
28
28
  def cast_to_unsigned(clause)
@@ -1,5 +1,15 @@
1
1
  module ThinkingSphinx
2
2
  class Source
3
+ def initialize_with_oracle_database_configuration(index, options = {})
4
+ connection = index.model.connection
5
+ if connection.class.name == "ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter"
6
+ connection.instance_variable_set(:@config, connection.raw_connection.instance_variable_get(:@config))
7
+ end
8
+ initialize_without_oracle_database_configuration(index, options)
9
+ end
10
+
11
+ alias_method_chain :initialize, :oracle_database_configuration
12
+
3
13
  def to_riddle_for_core(offset, position)
4
14
  source = Riddle::Configuration::XMLSource.new(
5
15
  "#{index.core_name}_#{position}", "xmlpipe2"
@@ -11,7 +11,6 @@ namespace :thinking_sphinx do
11
11
  ensure
12
12
  STDOUT.reopen(_stdout)
13
13
  end
14
- require 'thinking_sphinx'
15
14
  require 'thinking_sphinx/xml'
16
15
  # ThinkingSphinx::Configuration.instance.load_models
17
16
  source_name = ENV["NAME"]
@@ -56,7 +55,7 @@ namespace :thinking_sphinx do
56
55
  # STDERR.puts attribute
57
56
  case attribute && attribute.type
58
57
  when :boolean
59
- v = ['Y', 'T', '1', 1, true].include?(v) ? 1 : 0
58
+ v = ['Y', 'T', 't', '1', 1, true].include?(v) ? 1 : 0
60
59
  when :integer, :datetime
61
60
  v = v.to_i
62
61
  when :float
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 0
8
- - 2
9
- version: 1.0.2
8
+ - 3
9
+ version: 1.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Edgars Beigarts
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-02-24 00:00:00 +02:00
17
+ date: 2010-03-18 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: "0"
70
70
  type: :development
71
71
  version_requirements: *id004
72
- description: Support for Oracle, SQLite3 using xmlpipe2 for Thinking Sphinx
72
+ description: Thinking Sphinx plugin for xmlpipe2 data sources (Oracle, SQLite3, ...)
73
73
  email: 1@wb4.lv
74
74
  executables: []
75
75
 
@@ -78,6 +78,7 @@ extensions: []
78
78
  extra_rdoc_files:
79
79
  - LICENSE
80
80
  - README.textile
81
+ - TODO
81
82
  files:
82
83
  - LICENSE
83
84
  - README.textile
@@ -87,6 +88,7 @@ files:
87
88
  - lib/thinking_sphinx/xml/adapters/sqlite3_adapter.rb
88
89
  - lib/thinking_sphinx/xml/source.rb
89
90
  - lib/thinking_sphinx/xml/tasks.rb
91
+ - TODO
90
92
  has_rdoc: true
91
93
  homepage: http://github.com/ebeigarts/ts-xml
92
94
  licenses: []
@@ -116,6 +118,6 @@ rubyforge_project:
116
118
  rubygems_version: 1.3.6
117
119
  signing_key:
118
120
  specification_version: 3
119
- summary: Thinking Sphinx - XML
120
- test_files:
121
- - spec/cucumber_env.rb
121
+ summary: Thinking Sphinx + XML
122
+ test_files: []
123
+
@@ -1,22 +0,0 @@
1
- require 'rubygems'
2
- require 'cucumber'
3
- require 'spec'
4
- require 'fileutils'
5
- require 'ginger'
6
- require 'will_paginate'
7
- require 'active_record'
8
-
9
- $:.unshift File.dirname(__FILE__) + '/../../lib'
10
- Dir[File.join(File.dirname(__FILE__), '../../vendor/*/lib')].each do |path|
11
- $:.unshift path
12
- end
13
-
14
- require 'cucumber/thinking_sphinx/internal_world'
15
-
16
- world = Cucumber::ThinkingSphinx::InternalWorld.new
17
- world.configure_database
18
-
19
- require "thinking_sphinx"
20
- require "thinking_sphinx/xml"
21
-
22
- world.setup