activerecord-like 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,5 +3,10 @@ cache: bundler
3
3
  rvm:
4
4
  - 1.9.3
5
5
  - rbx-2.1.1
6
- # uncomment this line if your project needs to run something other than `rake`:
7
- # # script: bundle exec rspec spec
6
+ env:
7
+ - DB=pg
8
+ - DB=sqlite3
9
+ - DB=mysql
10
+ before_script:
11
+ - psql -c 'create database activerecord_like_test' -U postgres
12
+ - mysql -e 'create database activerecord_like_test'
data/Gemfile CHANGED
@@ -5,7 +5,14 @@ gem 'activerecord', '>= 4.0.0'
5
5
  group :test do
6
6
  gem 'rake'
7
7
 
8
- gem 'sqlite3'
8
+ case ENV['DB']
9
+ when 'pg'
10
+ gem 'pg'
11
+ when 'mysql'
12
+ gem 'mysql2'
13
+ else
14
+ gem 'sqlite3'
15
+ end
9
16
 
10
17
  gem 'minitest', '>= 3'
11
18
  end
data/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  [![Build Status](https://travis-ci.org/ReneB/activerecord-like.png?branch=master)](https://travis-ci.org/ReneB/activerecord-like)
4
4
  [![Code Climate](https://codeclimate.com/github/ReneB/activerecord-like.png)](https://codeclimate.com/github/ReneB/activerecord-like)
5
5
  [![Dependency Status](https://gemnasium.com/ReneB/activerecord-like.png)](https://gemnasium.com/ReneB/activerecord-like)
6
+ [![Gem Version](https://badge.fury.io/rb/activerecord-like.png)](http://badge.fury.io/rb/activerecord-like)
6
7
 
7
8
  An Active Record Plugin that allows chaining a more DSL-style 'like' or 'not-like' query to an ActiveRecord::Base#where. Requires Rails 4 beta or higher.
8
9
 
@@ -16,5 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ["lib"]
17
17
 
18
18
  gem.add_dependency "activerecord", ">= 4.0.0"
19
- gem.add_dependency "arel", ">= 4.0.2"
19
+ gem.add_dependency "arel", "~> 4.0.2"
20
20
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module Like
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -3,7 +3,100 @@ require 'minitest/autorun'
3
3
  require 'minitest/spec'
4
4
  require 'active_record/like'
5
5
 
6
- ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
6
+ module Test
7
+ module Postgres
8
+ def connect_db
9
+ ActiveRecord::Base.establish_connection(postgres_config)
10
+ end
11
+
12
+ def drop_and_create_database
13
+ # drops and create need to be performed with a connection to the 'postgres' (system) database
14
+ temp_connection = postgres_config.merge(database: 'postgres', schema_search_path: 'public')
15
+ ActiveRecord::Base.establish_connection(temp_connection)
16
+
17
+ # drop the old database (if it exists)
18
+ ActiveRecord::Base.connection.drop_database(database_name) rescue nil
19
+
20
+ # create new
21
+ ActiveRecord::Base.connection.create_database(database_name)
22
+ end
23
+
24
+ def postgres_config
25
+ @postgres_config ||= {
26
+ adapter: 'postgresql',
27
+ database: database_name,
28
+ username: 'postgres'
29
+ }
30
+ end
31
+
32
+ def database_name
33
+ 'activerecord_like_test'
34
+ end
35
+ end
36
+
37
+ module SQLite3
38
+ def connect_db
39
+ ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
40
+ end
41
+
42
+ def drop_and_create_database
43
+ # NOOP for SQLite3
44
+ end
45
+ end
46
+
47
+ module MySQL
48
+ def connect_db
49
+ ActiveRecord::Base.establish_connection(mysql_config)
50
+ end
51
+
52
+ def drop_and_create_database
53
+ temp_connection = mysql_config.merge(database: 'mysql')
54
+
55
+ ActiveRecord::Base.establish_connection(temp_connection)
56
+
57
+ # drop the old database (if it exists)
58
+ ActiveRecord::Base.connection.drop_database(database_name) rescue nil
59
+
60
+ # create new
61
+ ActiveRecord::Base.connection.create_database(database_name)
62
+ end
63
+
64
+ def mysql_config
65
+ @mysql_config ||= {
66
+ adapter: 'mysql2',
67
+ database: database_name,
68
+ username: db_user_name,
69
+ }
70
+ end
71
+
72
+ def db_user_name
73
+ # change this to whatever your config requires
74
+ ENV['TRAVIS'] ? 'travis' : 'root'
75
+ end
76
+
77
+ def database_name
78
+ 'activerecord_like_test'
79
+ end
80
+ end
81
+ end
82
+
83
+ case ENV['DB']
84
+ when 'pg'
85
+ include Test::Postgres
86
+ when 'sqlite3'
87
+ include Test::SQLite3
88
+ when 'mysql'
89
+ include Test::MySQL
90
+ else
91
+ puts "No DB environment variable provided, testing using SQLite3"
92
+ include Test::SQLite3
93
+ end
94
+
95
+ unless ENV['TRAVIS'] # if we're running on Travis, no drop/create needed
96
+ drop_and_create_database
97
+ end
98
+
99
+ connect_db
7
100
 
8
101
  ActiveRecord::Schema.verbose = false
9
102
  ActiveRecord::Schema.define do
@@ -36,7 +36,7 @@ describe ActiveRecord::QueryMethods::WhereChain do
36
36
 
37
37
  describe "security-related behavior" do
38
38
  before do
39
- @user_input = "unused%' OR 1=1); --"
39
+ @user_input = "unused%' OR 1=1); -- "
40
40
  end
41
41
 
42
42
  # This test is only here to provide the contrast for the test below
@@ -36,7 +36,7 @@ describe ActiveRecord::QueryMethods::WhereChain do
36
36
 
37
37
  describe "security-related behavior" do
38
38
  before do
39
- @user_input = "unused%' OR 1=1); --"
39
+ @user_input = "unused%' OR 1=1); -- "
40
40
  end
41
41
 
42
42
  # This test is only here to provide the contrast for the test below
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-like
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-19 00:00:00.000000000 Z
12
+ date: 2014-04-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -32,7 +32,7 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ! '>='
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
37
  version: 4.0.2
38
38
  type: :runtime
@@ -40,7 +40,7 @@ dependencies:
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ! '>='
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  version: 4.0.2
46
46
  description: An ActiveRecord plugin providing a higher-level abstraction for SQL 'LIKE'
@@ -78,15 +78,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
78
78
  - - ! '>='
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
+ segments:
82
+ - 0
83
+ hash: 3561638004466154601
81
84
  required_rubygems_version: !ruby/object:Gem::Requirement
82
85
  none: false
83
86
  requirements:
84
87
  - - ! '>='
85
88
  - !ruby/object:Gem::Version
86
89
  version: '0'
90
+ segments:
91
+ - 0
92
+ hash: 3561638004466154601
87
93
  requirements: []
88
94
  rubyforge_project:
89
- rubygems_version: 1.8.23
95
+ rubygems_version: 1.8.24
90
96
  signing_key:
91
97
  specification_version: 3
92
98
  summary: ! 'ActiveRecord::Like provides ActiveRecord::Base with where.like(attribute: