ts-xml 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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