tune_my_query 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -3,7 +3,7 @@ tune_my_query
3
3
 
4
4
  About
5
5
  -----
6
- **tune_my_query** is an extension of the gem **me_gusta** written by **[John Pignata]**(http://github.com/jpignata)
6
+ **tune_my_query** is an extension of the gem **me_gusta** written by **[John Pignata](http://github.com/jpignata)**
7
7
 
8
8
  It is a simple way to switch between standard SQL and extended SQL syntax depending on the adapter. For example: PostgreSql has an ILIKE extension which is not found in other databases like mysql. This gem(not released yet) ensures the query is adapted based on the current database.
9
9
 
@@ -20,16 +20,16 @@ It is simple to use. Just install it like:
20
20
 
21
21
  sudo gem install tune_my_query
22
22
 
23
- And do in the model class where you have used a database specific SQL, like this:
23
+ And do the following in the model class where you have used a database specific SQL, like this:
24
24
 
25
25
  tune_my_query :like
26
26
 
27
- Here like signifies the extension to usual SQL LIKE.
27
+ Here 'like' signifies the extension to usual SQL LIKE.
28
28
 
29
29
 
30
30
  Does it only work with LIKE? What a futile effort
31
31
  -------------------------------------------------
32
- Yes, at the moment it only does that. But, you can fork the code and add your own commands in the commands directory inside lib. Every new command that you add should have a name ending with Command. For example: AwesomeCommand. Add a singleton execute method to it and send me a patch, I will add it in. Please do add specs.
32
+ Yes, at the moment it only does that. But, you can fork the code and add your own commands in the lib/commands directory. Every new command you add should have a name ending with "Command". For example: AwesomeCommand. Add a singleton "execute" method to it and send me a patch, I will add it in. Please do add specs.
33
33
 
34
34
 
35
35
  Specs
@@ -55,4 +55,4 @@ Authors
55
55
 
56
56
  Roadmap
57
57
  -------
58
- * To make it work for any database extension. At the moment it would only for SQL extensions added by PostgreSql.
58
+ * To make it work for any database extension. At the moment it would only work for PostgreSql specific SQL extensions.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/init.rb CHANGED
@@ -1,3 +1,2 @@
1
1
  require "lib/tune_my_query"
2
2
 
3
- ActiveRecord::Base.send(:include, TuneMyQuery)
@@ -36,11 +36,13 @@ module TuneMyQuery
36
36
  end
37
37
 
38
38
  def standardise_sql(*conditions)
39
- conditions = conditions.dup
40
- @adapter = connection && !connection.class.to_s.include?("PostgreSQLAdapter")
41
- command = "#{@command_type.to_s.camelize}Command".constantize
42
- if @adapter
43
- conditions.each { |condition| command.execute(condition) }
39
+ if @command_type
40
+ conditions = conditions.dup
41
+ @adapter = connection && !connection.class.to_s.include?("PostgreSQLAdapter")
42
+ command = "#{@command_type.to_s.camelize}Command".constantize
43
+ if @adapter
44
+ conditions.each { |condition| command.execute(condition) }
45
+ end
44
46
  end
45
47
  super_merge_conditions(*conditions)
46
48
  end
data/lib/tune_my_query.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  $: << File.join(File.dirname(__FILE__), "..", "lib")
2
2
 
3
3
  require "tune_my_query/tune_my_query"
4
- Dir.glob("#{File.dirname(__FILE__)}/tune_my_query/commands/*.*").each{|file| require file}
4
+ Dir.glob("#{File.dirname(__FILE__)}/tune_my_query/commands/*.*").each{|file| require file}
5
+
6
+ ActiveRecord::Base.send(:include, TuneMyQuery)
Binary file
@@ -21,9 +21,15 @@ describe "TuneMyQuery" do
21
21
  context "for LIKE SQL command" do
22
22
  it "should convert from postgresql specific to standard SQL" do
23
23
  Auberdine.merge_conditions(["name = 'joe'"], ["address ilike 'main'"]).
24
- should be_eql("(name = 'joe') AND (address like 'main')")
25
- end
26
- end
24
+ should be_eql("(name = 'joe') AND (address like 'main')")
25
+ end
26
+
27
+ it "should ensure that other model objects work normally" do
28
+ Exodar.merge_conditions(["name = 'joe'"]).should be_eql("(name = 'joe')")
29
+ end
30
+
31
+ end
32
+
27
33
  end
28
34
 
29
35
 
@@ -38,7 +44,12 @@ describe "TuneMyQuery" do
38
44
  it "should not convert from postgresql specific to standard SQL" do
39
45
  Auberdine.merge_conditions(["name = 'joe'"], ["address ilike 'main'"]).
40
46
  should be_eql("(name = 'joe') AND (address ilike 'main')")
41
- end
47
+ end
48
+
49
+ it "should ensure that other model objects work normally" do
50
+ Exodar.merge_conditions(["name = 'joe'"]).should be_eql("(name = 'joe')")
51
+ end
52
+
42
53
  end
43
54
 
44
55
  end
data/spec/models.rb CHANGED
@@ -1,3 +1,6 @@
1
1
  class Auberdine < ActiveRecord::Base
2
2
  tune_my_query :like
3
3
  end
4
+
5
+ class Exodar < ActiveRecord::Base
6
+ end
data/spec/schema.db CHANGED
@@ -5,4 +5,11 @@ ActiveRecord::Schema.define(:version => 1) do
5
5
  t.datetime "created_at"
6
6
  t.datetime "updated_at"
7
7
  end
8
+
9
+ create_table "exodar", :force => true do |t|
10
+ t.string "name"
11
+ t.string "description"
12
+ t.datetime "created_at"
13
+ t.datetime "updated_at"
14
+ end
8
15
  end
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,9 @@
1
+ %w(activerecord active_support yaml spec).each{|path| require path }
2
+
1
3
  require File.join(File.dirname(__FILE__), "..", "lib", "tune_my_query")
2
4
 
3
- %w(activerecord active_support yaml spec).each{|path| require path }
5
+ %w(models).each{|path| require File.join(File.dirname(__FILE__), path) }
4
6
 
5
- %w(../init models).each{|path| require File.join(File.dirname(__FILE__), path) }
6
-
7
7
  def connect(adapter)
8
8
  fix_quote_ident_postgres_error if adapter == "postgres"
9
9
  conf = YAML::load(File.open(File.dirname(__FILE__) + '/database.yml'))
@@ -0,0 +1,57 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{tune_my_query}
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Anuj Dutta"]
12
+ s.date = %q{2009-12-16}
13
+ s.description = %q{Switches between standard SQL and extended SQL syntax depending on the adapter.}
14
+ s.email = %q{anuj@andhapp.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.markdown"
18
+ ]
19
+ s.files = [
20
+ "HISTORY",
21
+ "LICENSE",
22
+ "README.markdown",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "init.rb",
26
+ "lib/tune_my_query.rb",
27
+ "lib/tune_my_query/commands/LikeCommand.rb",
28
+ "lib/tune_my_query/tune_my_query.rb",
29
+ "pkg/tune_my_query-0.1.0.gem",
30
+ "spec/database.yml",
31
+ "spec/lib/tune_my_query_spec.rb",
32
+ "spec/models.rb",
33
+ "spec/schema.db",
34
+ "spec/spec_helper.rb",
35
+ "tune_my_query.gemspec"
36
+ ]
37
+ s.homepage = %q{http://github.com/andhapp/tune_my_query}
38
+ s.rdoc_options = ["--charset=UTF-8"]
39
+ s.require_paths = ["lib"]
40
+ s.rubygems_version = %q{1.3.5}
41
+ s.summary = %q{Standardises SQL syntax across databases.}
42
+ s.test_files = [
43
+ "spec/lib/tune_my_query_spec.rb",
44
+ "spec/models.rb",
45
+ "spec/spec_helper.rb"
46
+ ]
47
+
48
+ if s.respond_to? :specification_version then
49
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
50
+ s.specification_version = 3
51
+
52
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
53
+ else
54
+ end
55
+ else
56
+ end
57
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tune_my_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anuj Dutta
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-15 00:00:00 +05:30
12
+ date: 2009-12-16 00:00:00 +05:30
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -32,11 +32,13 @@ files:
32
32
  - lib/tune_my_query.rb
33
33
  - lib/tune_my_query/commands/LikeCommand.rb
34
34
  - lib/tune_my_query/tune_my_query.rb
35
+ - pkg/tune_my_query-0.1.0.gem
35
36
  - spec/database.yml
36
37
  - spec/lib/tune_my_query_spec.rb
37
38
  - spec/models.rb
38
39
  - spec/schema.db
39
40
  - spec/spec_helper.rb
41
+ - tune_my_query.gemspec
40
42
  has_rdoc: true
41
43
  homepage: http://github.com/andhapp/tune_my_query
42
44
  licenses: []