xapor 0.1.6 → 0.2.0

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/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
@@ -0,0 +1,45 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ xapor (0.1.4)
5
+ xapian-fu (>= 1.1.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ builder (3.0.0)
11
+ cucumber (1.1.3)
12
+ builder (>= 2.1.2)
13
+ diff-lcs (>= 1.1.2)
14
+ gherkin (~> 2.6.7)
15
+ json (>= 1.4.6)
16
+ term-ansicolor (>= 1.0.6)
17
+ diff-lcs (1.1.3)
18
+ gherkin (2.6.8)
19
+ json (>= 1.4.6)
20
+ git (1.2.5)
21
+ jeweler (1.6.4)
22
+ bundler (~> 1.0)
23
+ git (>= 1.2.5)
24
+ rake
25
+ json (1.6.2)
26
+ rake (0.9.2.2)
27
+ rspec (2.7.0)
28
+ rspec-core (~> 2.7.0)
29
+ rspec-expectations (~> 2.7.0)
30
+ rspec-mocks (~> 2.7.0)
31
+ rspec-core (2.7.1)
32
+ rspec-expectations (2.7.0)
33
+ diff-lcs (~> 1.1.2)
34
+ rspec-mocks (2.7.0)
35
+ term-ansicolor (1.0.7)
36
+ xapian-fu (1.3.1)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ cucumber
43
+ jeweler
44
+ rspec (>= 1.2.9)
45
+ xapor!
data/Rakefile CHANGED
@@ -20,30 +20,8 @@ rescue LoadError
20
20
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
21
21
  end
22
22
 
23
- require 'spec/rake/spectask'
24
- Spec::Rake::SpecTask.new(:spec) do |spec|
25
- spec.libs << 'lib' << 'spec'
26
- spec.spec_files = FileList['spec/**/*_spec.rb']
27
- end
28
-
29
- Spec::Rake::SpecTask.new(:rcov) do |spec|
30
- spec.libs << 'lib' << 'spec'
31
- spec.pattern = 'spec/**/*_spec.rb'
32
- spec.rcov = true
33
- end
34
-
35
- task :spec => :check_dependencies
36
-
37
- begin
38
- require 'cucumber/rake/task'
39
- Cucumber::Rake::Task.new(:features)
40
-
41
- task :features => :check_dependencies
42
- rescue LoadError
43
- task :features do
44
- abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
45
- end
46
- end
23
+ require 'rspec/core/rake_task'
24
+ RSpec::Core::RakeTask.new(:spec)
47
25
 
48
26
  task :default => :spec
49
27
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.2.0
@@ -12,49 +12,46 @@ module Xapor::XapianFuIntegration
12
12
 
13
13
  module ClassMethods
14
14
  def xapor
15
- class << self
16
- attr_accessor :xapor_config
17
- attr_accessor :xapor_db
18
- end
19
-
20
15
  include XapianFu
21
16
 
22
- def self.search(query)
17
+ def search(query)
23
18
  xapor_db.search(query)
24
19
  end
25
20
 
26
- def self.reset_index
27
- if self.xapor_db
28
- self.xapor_db.flush
29
- self.xapor_db.ro.close
30
- self.xapor_db.rw.close
21
+ def reset_index
22
+ if @db
23
+ @db.flush
24
+ @db.ro.close
25
+ @db.rw.close
31
26
  end
32
- self.xapor_db = ::XapianFu::XapianDb.new(self.xapor_config.xapian_fu_db.merge(:overwrite => true))
27
+ @db = XapianDb.new(xapor_config.xapian_fu_db.merge(:overwrite => true))
33
28
  if block_given?
34
- yield self.xapor_db
29
+ yield @db
35
30
  end
36
31
  end
37
32
 
38
- self.xapor_config = Xapor::Config.new
39
- if block_given?
40
- yield self.xapor_config
33
+ def xapor_config
34
+ self.class.instance_variable_get(:@config)
41
35
  end
42
- self.xapor_db = ::XapianFu::XapianDb.new(self.xapor_config.xapian_fu_db.merge(:create => true))
43
36
 
44
- eigenclass = class << self
45
- self
37
+ def xapor_db
38
+ @db ||= XapianDb.new(xapor_config.xapian_fu_db.merge(:create => true))
46
39
  end
47
- self.xapor_config.search_fields.each do |field|
48
- eigenclass.send(:define_method, :"search_by_#{field}") do |query|
49
- self.search(query)
50
- end
40
+
41
+ @config = Xapor::Config.new
42
+ if block_given?
43
+ yield @config
44
+ end
45
+
46
+ @config.search_fields.each do |field|
47
+ class_eval("def self.search_by_#{field}(query)\nself.search(query)\nend")
51
48
  end
52
49
 
53
50
  if defined? ActiveRecord && ancestors.includes(ActiveRecord::Base)
54
51
  after_save :add_to_index
55
52
  after_destroy :remove_from_index
56
53
  #in-memory index, needs to be indexed on startup
57
- all.each {|o| o.add_to_index} unless self.xapor_config.directory_config
54
+ all.each {|o| o.add_to_index} unless @config.directory_config
58
55
  end
59
56
  end
60
57
  end
@@ -1,70 +1,78 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{xapor}
8
- s.version = "0.1.6"
7
+ s.name = "xapor"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David Workman"]
12
- s.date = %q{2010-06-01}
13
- s.description = %q{Rails plugin for Xapian search, built on XapianFu and DelayedJob.}
14
- s.email = %q{workmad3@hedtek.com}
12
+ s.date = "2011-11-30"
13
+ s.description = "Rails plugin for Xapian search, built on XapianFu and DelayedJob."
14
+ s.email = "workmad3@hedtek.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.textile"
17
+ "README.textile"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.textile",
24
- "Rakefile",
25
- "VERSION",
26
- "features/step_definitions/xapor_steps.rb",
27
- "features/support/env.rb",
28
- "features/xapor.feature",
29
- "generators/xapor_initializer/templates/xapor.rb",
30
- "generators/xapor_initializer/xapor_initializer_generator.rb",
31
- "init.rb",
32
- "lib/xapor.rb",
33
- "lib/xapor/config.rb",
34
- "lib/xapor/model_integration.rb",
35
- "spec/lib/xapor/config_spec.rb",
36
- "spec/lib/xapor/model_integration_spec.rb",
37
- "spec/lib/xapor_spec.rb",
38
- "spec/spec.opts",
39
- "spec/spec_helper.rb",
40
- "xapor.gemspec"
41
- ]
42
- s.homepage = %q{http://github.com/hedtekltd/xapor}
43
- s.rdoc_options = ["--charset=UTF-8"]
44
- s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.3.6}
46
- s.summary = %q{Rails plugin for Xapian search}
47
- s.test_files = [
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "LICENSE",
24
+ "README.textile",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "features/step_definitions/xapor_steps.rb",
28
+ "features/support/env.rb",
29
+ "features/xapor.feature",
30
+ "lib/xapor.rb",
31
+ "lib/xapor/config.rb",
32
+ "lib/xapor/model_integration.rb",
48
33
  "spec/lib/xapor/config_spec.rb",
49
- "spec/lib/xapor/model_integration_spec.rb",
50
- "spec/lib/xapor_spec.rb",
51
- "spec/spec_helper.rb"
34
+ "spec/lib/xapor/model_integration_spec.rb",
35
+ "spec/lib/xapor_spec.rb",
36
+ "spec/spec.opts",
37
+ "spec/spec_helper.rb",
38
+ "xapor.gemspec"
52
39
  ]
40
+ s.homepage = "http://github.com/hedtekltd/xapor"
41
+ s.require_paths = ["lib"]
42
+ s.rubygems_version = "1.8.10"
43
+ s.summary = "Rails plugin for Xapian search"
53
44
 
54
45
  if s.respond_to? :specification_version then
55
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
56
46
  s.specification_version = 3
57
47
 
58
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
48
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
+ s.add_runtime_dependency(%q<xapor>, [">= 0"])
50
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
51
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
52
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
53
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
54
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
59
55
  s.add_runtime_dependency(%q<xapian-fu>, [">= 1.1.0"])
60
56
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
61
57
  s.add_development_dependency(%q<cucumber>, [">= 0"])
62
58
  else
59
+ s.add_dependency(%q<xapor>, [">= 0"])
60
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
61
+ s.add_dependency(%q<cucumber>, [">= 0"])
62
+ s.add_dependency(%q<jeweler>, [">= 0"])
63
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
64
+ s.add_dependency(%q<cucumber>, [">= 0"])
63
65
  s.add_dependency(%q<xapian-fu>, [">= 1.1.0"])
64
66
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
65
67
  s.add_dependency(%q<cucumber>, [">= 0"])
66
68
  end
67
69
  else
70
+ s.add_dependency(%q<xapor>, [">= 0"])
71
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
72
+ s.add_dependency(%q<cucumber>, [">= 0"])
73
+ s.add_dependency(%q<jeweler>, [">= 0"])
74
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
75
+ s.add_dependency(%q<cucumber>, [">= 0"])
68
76
  s.add_dependency(%q<xapian-fu>, [">= 1.1.0"])
69
77
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
70
78
  s.add_dependency(%q<cucumber>, [">= 0"])
metadata CHANGED
@@ -1,74 +1,126 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: xapor
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 6
9
- version: 0.1.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - David Workman
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2010-06-01 00:00:00 +01:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: xapian-fu
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 1
30
- - 0
31
- version: 1.1.0
12
+ date: 2011-11-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: xapor
16
+ requirement: &2155939280 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
23
+ prerelease: false
24
+ version_requirements: *2155939280
25
+ - !ruby/object:Gem::Dependency
35
26
  name: rspec
27
+ requirement: &2155937380 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 1.2.9
33
+ type: :development
36
34
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 1
43
- - 2
44
- - 9
35
+ version_requirements: *2155937380
36
+ - !ruby/object:Gem::Dependency
37
+ name: cucumber
38
+ requirement: &2155960600 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2155960600
47
+ - !ruby/object:Gem::Dependency
48
+ name: jeweler
49
+ requirement: &2155958360 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2155958360
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec
60
+ requirement: &2155956840 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
45
65
  version: 1.2.9
46
66
  type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
67
+ prerelease: false
68
+ version_requirements: *2155956840
69
+ - !ruby/object:Gem::Dependency
49
70
  name: cucumber
71
+ requirement: &2155955740 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
50
78
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 0
57
- version: "0"
79
+ version_requirements: *2155955740
80
+ - !ruby/object:Gem::Dependency
81
+ name: xapian-fu
82
+ requirement: &2155954600 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: 1.1.0
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *2155954600
91
+ - !ruby/object:Gem::Dependency
92
+ name: rspec
93
+ requirement: &2155953580 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: 1.2.9
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *2155953580
102
+ - !ruby/object:Gem::Dependency
103
+ name: cucumber
104
+ requirement: &2155987540 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
58
110
  type: :development
59
- version_requirements: *id003
111
+ prerelease: false
112
+ version_requirements: *2155987540
60
113
  description: Rails plugin for Xapian search, built on XapianFu and DelayedJob.
61
114
  email: workmad3@hedtek.com
62
115
  executables: []
63
-
64
116
  extensions: []
65
-
66
- extra_rdoc_files:
117
+ extra_rdoc_files:
67
118
  - LICENSE
68
119
  - README.textile
69
- files:
120
+ files:
70
121
  - .document
71
- - .gitignore
122
+ - Gemfile
123
+ - Gemfile.lock
72
124
  - LICENSE
73
125
  - README.textile
74
126
  - Rakefile
@@ -76,9 +128,6 @@ files:
76
128
  - features/step_definitions/xapor_steps.rb
77
129
  - features/support/env.rb
78
130
  - features/xapor.feature
79
- - generators/xapor_initializer/templates/xapor.rb
80
- - generators/xapor_initializer/xapor_initializer_generator.rb
81
- - init.rb
82
131
  - lib/xapor.rb
83
132
  - lib/xapor/config.rb
84
133
  - lib/xapor/model_integration.rb
@@ -88,38 +137,28 @@ files:
88
137
  - spec/spec.opts
89
138
  - spec/spec_helper.rb
90
139
  - xapor.gemspec
91
- has_rdoc: true
92
140
  homepage: http://github.com/hedtekltd/xapor
93
141
  licenses: []
94
-
95
142
  post_install_message:
96
- rdoc_options:
97
- - --charset=UTF-8
98
- require_paths:
143
+ rdoc_options: []
144
+ require_paths:
99
145
  - lib
100
- required_ruby_version: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- segments:
105
- - 0
106
- version: "0"
107
- required_rubygems_version: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- segments:
112
- - 0
113
- version: "0"
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
114
158
  requirements: []
115
-
116
159
  rubyforge_project:
117
- rubygems_version: 1.3.6
160
+ rubygems_version: 1.8.10
118
161
  signing_key:
119
162
  specification_version: 3
120
163
  summary: Rails plugin for Xapian search
121
- test_files:
122
- - spec/lib/xapor/config_spec.rb
123
- - spec/lib/xapor/model_integration_spec.rb
124
- - spec/lib/xapor_spec.rb
125
- - spec/spec_helper.rb
164
+ test_files: []
data/.gitignore DELETED
@@ -1,24 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## RUBYMINE
17
- .idea/*
18
-
19
- ## PROJECT::GENERAL
20
- coverage
21
- rdoc
22
- pkg
23
-
24
- ## PROJECT::SPECIFIC
@@ -1,8 +0,0 @@
1
- class XaporInitializerGenerator < Rails::Generator::Base
2
- def manifest
3
- record do |m|
4
- m.directory 'config/initializers'
5
- m.template 'xapor.rb', 'config/initializers/xapor.rb'
6
- end
7
- end
8
- end
data/init.rb DELETED
@@ -1 +0,0 @@
1
- require 'xapor'