diff options
| author | hukl <contact@smyck.org> | 2011-02-10 14:19:00 +0100 |
|---|---|---|
| committer | hukl <contact@smyck.org> | 2011-02-10 14:19:00 +0100 |
| commit | 7379daad1c73bd3610ed296436250b417ac3673d (patch) | |
| tree | 04f722efc678de9d3aa5bf8f1c96e3be33b18bc4 /vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas | |
| parent | 91633ac4419d839661e35ae8f2efe5c9089cfb67 (diff) | |
removed thinking_sphinx plugin and replaced it with gem.
also tuned dependencies
Diffstat (limited to 'vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas')
6 files changed, 0 insertions, 219 deletions
diff --git a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/datetime_delta.rb b/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/datetime_delta.rb deleted file mode 100644 index 2ee46d41..00000000 --- a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/datetime_delta.rb +++ /dev/null | |||
| @@ -1,50 +0,0 @@ | |||
| 1 | module ThinkingSphinx | ||
| 2 | module Deltas | ||
| 3 | class DatetimeDelta < ThinkingSphinx::Deltas::DefaultDelta | ||
| 4 | attr_accessor :column, :threshold | ||
| 5 | |||
| 6 | def initialize(index, options) | ||
| 7 | @index = index | ||
| 8 | @column = options.delete(:delta_column) || :updated_at | ||
| 9 | @threshold = options.delete(:threshold) || 1.day | ||
| 10 | end | ||
| 11 | |||
| 12 | def index(model, instance = nil) | ||
| 13 | # do nothing | ||
| 14 | true | ||
| 15 | end | ||
| 16 | |||
| 17 | def delayed_index(model) | ||
| 18 | config = ThinkingSphinx::Configuration.instance | ||
| 19 | rotate = ThinkingSphinx.sphinx_running? ? "--rotate" : "" | ||
| 20 | |||
| 21 | output = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}` | ||
| 22 | output += `#{config.bin_path}indexer --config #{config.config_file} #{rotate} --merge #{core_index_name model} #{delta_index_name model} --merge-dst-range sphinx_deleted 0 0` | ||
| 23 | puts output unless ThinkingSphinx.suppress_delta_output? | ||
| 24 | |||
| 25 | true | ||
| 26 | end | ||
| 27 | |||
| 28 | def toggle(instance) | ||
| 29 | # do nothing | ||
| 30 | end | ||
| 31 | |||
| 32 | def toggled(instance) | ||
| 33 | instance.send(@column) > @threshold.ago | ||
| 34 | end | ||
| 35 | |||
| 36 | def reset_query(model) | ||
| 37 | nil | ||
| 38 | end | ||
| 39 | |||
| 40 | def clause(model, toggled) | ||
| 41 | if toggled | ||
| 42 | "#{model.quoted_table_name}.#{@index.quote_column(@column.to_s)}" + | ||
| 43 | " > #{adapter.time_difference(@threshold)}" | ||
| 44 | else | ||
| 45 | nil | ||
| 46 | end | ||
| 47 | end | ||
| 48 | end | ||
| 49 | end | ||
| 50 | end | ||
diff --git a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/default_delta.rb b/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/default_delta.rb deleted file mode 100644 index c9736120..00000000 --- a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/default_delta.rb +++ /dev/null | |||
| @@ -1,67 +0,0 @@ | |||
| 1 | module ThinkingSphinx | ||
| 2 | module Deltas | ||
| 3 | class DefaultDelta | ||
| 4 | attr_accessor :column | ||
| 5 | |||
| 6 | def initialize(index, options) | ||
| 7 | @index = index | ||
| 8 | @column = options.delete(:delta_column) || :delta | ||
| 9 | end | ||
| 10 | |||
| 11 | def index(model, instance = nil) | ||
| 12 | return true unless ThinkingSphinx.updates_enabled? && | ||
| 13 | ThinkingSphinx.deltas_enabled? | ||
| 14 | return true if instance && !toggled(instance) | ||
| 15 | |||
| 16 | config = ThinkingSphinx::Configuration.instance | ||
| 17 | client = Riddle::Client.new config.address, config.port | ||
| 18 | rotate = ThinkingSphinx.sphinx_running? ? "--rotate" : "" | ||
| 19 | |||
| 20 | output = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}` | ||
| 21 | puts(output) unless ThinkingSphinx.suppress_delta_output? | ||
| 22 | |||
| 23 | client.update( | ||
| 24 | core_index_name(model), | ||
| 25 | ['sphinx_deleted'], | ||
| 26 | {instance.sphinx_document_id => [1]} | ||
| 27 | ) if instance && ThinkingSphinx.sphinx_running? && instance.in_both_indexes? | ||
| 28 | |||
| 29 | true | ||
| 30 | end | ||
| 31 | |||
| 32 | def toggle(instance) | ||
| 33 | instance.delta = true | ||
| 34 | end | ||
| 35 | |||
| 36 | def toggled(instance) | ||
| 37 | instance.delta | ||
| 38 | end | ||
| 39 | |||
| 40 | def reset_query(model) | ||
| 41 | "UPDATE #{model.quoted_table_name} SET " + | ||
| 42 | "#{@index.quote_column(@column.to_s)} = #{adapter.boolean(false)}" | ||
| 43 | end | ||
| 44 | |||
| 45 | def clause(model, toggled) | ||
| 46 | "#{model.quoted_table_name}.#{@index.quote_column(@column.to_s)}" + | ||
| 47 | " = #{adapter.boolean(toggled)}" | ||
| 48 | end | ||
| 49 | |||
| 50 | protected | ||
| 51 | |||
| 52 | def core_index_name(model) | ||
| 53 | "#{model.source_of_sphinx_index.name.underscore.tr(':/\\', '_')}_core" | ||
| 54 | end | ||
| 55 | |||
| 56 | def delta_index_name(model) | ||
| 57 | "#{model.source_of_sphinx_index.name.underscore.tr(':/\\', '_')}_delta" | ||
| 58 | end | ||
| 59 | |||
| 60 | private | ||
| 61 | |||
| 62 | def adapter | ||
| 63 | @adapter = @index.model.sphinx_database_adapter | ||
| 64 | end | ||
| 65 | end | ||
| 66 | end | ||
| 67 | end | ||
diff --git a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta.rb b/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta.rb deleted file mode 100644 index e95298b6..00000000 --- a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta.rb +++ /dev/null | |||
| @@ -1,25 +0,0 @@ | |||
| 1 | require 'delayed/job' | ||
| 2 | |||
| 3 | require 'thinking_sphinx/deltas/delayed_delta/delta_job' | ||
| 4 | require 'thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job' | ||
| 5 | require 'thinking_sphinx/deltas/delayed_delta/job' | ||
| 6 | |||
| 7 | module ThinkingSphinx | ||
| 8 | module Deltas | ||
| 9 | class DelayedDelta < ThinkingSphinx::Deltas::DefaultDelta | ||
| 10 | def index(model, instance = nil) | ||
| 11 | ThinkingSphinx::Deltas::Job.enqueue( | ||
| 12 | ThinkingSphinx::Deltas::DeltaJob.new(delta_index_name(model)) | ||
| 13 | ) | ||
| 14 | |||
| 15 | Delayed::Job.enqueue( | ||
| 16 | ThinkingSphinx::Deltas::FlagAsDeletedJob.new( | ||
| 17 | core_index_name(model), instance.sphinx_document_id | ||
| 18 | ) | ||
| 19 | ) if instance | ||
| 20 | |||
| 21 | true | ||
| 22 | end | ||
| 23 | end | ||
| 24 | end | ||
| 25 | end | ||
diff --git a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/delta_job.rb b/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/delta_job.rb deleted file mode 100644 index f9511ecd..00000000 --- a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/delta_job.rb +++ /dev/null | |||
| @@ -1,24 +0,0 @@ | |||
| 1 | module ThinkingSphinx | ||
| 2 | module Deltas | ||
| 3 | class DeltaJob | ||
| 4 | attr_accessor :index | ||
| 5 | |||
| 6 | def initialize(index) | ||
| 7 | @index = index | ||
| 8 | end | ||
| 9 | |||
| 10 | def perform | ||
| 11 | return true unless ThinkingSphinx.updates_enabled? && | ||
| 12 | ThinkingSphinx.deltas_enabled? | ||
| 13 | |||
| 14 | config = ThinkingSphinx::Configuration.instance | ||
| 15 | client = Riddle::Client.new config.address, config.port | ||
| 16 | |||
| 17 | output = `#{config.bin_path}indexer --config #{config.config_file} --rotate #{index}` | ||
| 18 | puts output unless ThinkingSphinx.suppress_delta_output? | ||
| 19 | |||
| 20 | true | ||
| 21 | end | ||
| 22 | end | ||
| 23 | end | ||
| 24 | end | ||
diff --git a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb b/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb deleted file mode 100644 index d6afd27b..00000000 --- a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/flag_as_deleted_job.rb +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | module ThinkingSphinx | ||
| 2 | module Deltas | ||
| 3 | class FlagAsDeletedJob | ||
| 4 | attr_accessor :index, :document_id | ||
| 5 | |||
| 6 | def initialize(index, document_id) | ||
| 7 | @index, @document_id = index, document_id | ||
| 8 | end | ||
| 9 | |||
| 10 | def perform | ||
| 11 | return true unless ThinkingSphinx.updates_enabled? | ||
| 12 | |||
| 13 | config = ThinkingSphinx::Configuration.instance | ||
| 14 | client = Riddle::Client.new config.address, config.port | ||
| 15 | |||
| 16 | client.update( | ||
| 17 | @index, | ||
| 18 | ['sphinx_deleted'], | ||
| 19 | {@document_id => [1]} | ||
| 20 | ) if ThinkingSphinx.sphinx_running? && | ||
| 21 | ThinkingSphinx::Search.search_for_id(@document_id, @index) | ||
| 22 | |||
| 23 | true | ||
| 24 | end | ||
| 25 | end | ||
| 26 | end | ||
| 27 | end \ No newline at end of file | ||
diff --git a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/job.rb b/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/job.rb deleted file mode 100644 index de0a7cb5..00000000 --- a/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/deltas/delayed_delta/job.rb +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | module ThinkingSphinx | ||
| 2 | module Deltas | ||
| 3 | class Job < Delayed::Job | ||
| 4 | def self.enqueue(object, priority = 0) | ||
| 5 | super unless duplicates_exist(object) | ||
| 6 | end | ||
| 7 | |||
| 8 | def self.cancel_thinking_sphinx_jobs | ||
| 9 | if connection.tables.include?("delayed_jobs") | ||
| 10 | delete_all("handler LIKE '--- !ruby/object:ThinkingSphinx::Deltas::%'") | ||
| 11 | end | ||
| 12 | end | ||
| 13 | |||
| 14 | private | ||
| 15 | |||
| 16 | def self.duplicates_exist(object) | ||
| 17 | count( | ||
| 18 | :conditions => { | ||
| 19 | :handler => object.to_yaml, | ||
| 20 | :locked_at => nil | ||
| 21 | } | ||
| 22 | ) > 0 | ||
| 23 | end | ||
| 24 | end | ||
| 25 | end | ||
| 26 | end | ||
