activerecord-like 0.0.1 → 0.0.2

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/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ cache: bundler
3
+ rvm:
4
+ - "1.9.3"
5
+ - rbx-19mode
6
+ # uncomment this line if your project needs to run something other than `rake`:
7
+ # # script: bundle exec rspec spec
data/Gemfile CHANGED
@@ -2,4 +2,12 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'activerecord', '>= 4.0.0'
4
4
 
5
+ group :test do
6
+ gem 'rake'
7
+
8
+ gem 'sqlite3'
9
+
10
+ gem 'minitest', '>= 3'
11
+ end
12
+
5
13
  gemspec
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # ActiveRecord::Like
2
2
 
3
+ [![Build Status](https://travis-ci.org/ReneB/activerecord-like.png)](https://travis-ci.org/ReneB/activerecord-like)
4
+ [![Code Climate](https://codeclimate.com/github/ReneB/activerecord-like.png)](https://codeclimate.com/github/ReneB/activerecord-like)
5
+ [![Dependency Status](https://gemnasium.com/ReneB/activerecord-like.png)](https://gemnasium.com/ReneB/activerecord-like)
6
+
3
7
  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.
4
8
 
5
9
  This plugin has been salvaged from the stellar work done by @amatsuda and @claudiob. Most of the code was previously in Active Record master, but was subsequently removed due to, amongst other, scope creep.
@@ -33,6 +37,6 @@ and
33
37
  1. Fork it
34
38
  2. Create your feature branch (`git checkout -b my-new-feature`)
35
39
  3. Commit your changes (`git commit -am 'Add some feature'`)
36
- 4. Make sure the tests run. I will not merge commits that change code without testing the new code.
40
+ 4. Make sure the tests run. I will not merge commits that change code without testing the new code. Running the tests is as easy as running `bundle && rake` - if this does not work, consider it a bug and report it.
37
41
  5. Push to the branch (`git push origin my-new-feature`)
38
42
  6. Create new Pull Request
@@ -15,8 +15,5 @@ Gem::Specification.new do |gem|
15
15
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
16
  gem.require_paths = ["lib"]
17
17
 
18
- gem.add_development_dependency "minitest", ">= 3"
19
- gem.add_development_dependency "sqlite3", "~> 1.3"
20
-
21
18
  gem.add_dependency "activerecord", ">= 4.0.0"
22
19
  end
@@ -4,17 +4,18 @@ module ActiveRecord
4
4
  module QueryMethods
5
5
  module Like
6
6
  def like(opts, *rest)
7
- @scope.tap do |s|
8
- s.where_values += s.send(:build_where, opts, *rest).map do |r|
9
- Arel::Nodes::Matches.new(r.left, r.right)
10
- end
11
- end
7
+ chain_node(Arel::Nodes::Matches, opts, *rest)
12
8
  end
13
9
 
14
10
  def not_like(opts, *rest)
11
+ chain_node(Arel::Nodes::DoesNotMatch, opts, *rest)
12
+ end
13
+
14
+ private
15
+ def chain_node(node_type, opts, *rest)
15
16
  @scope.tap do |s|
16
17
  s.where_values += s.send(:build_where, opts, *rest).map do |r|
17
- Arel::Nodes::DoesNotMatch.new(r.left, r.right)
18
+ node_type.new(r.left, r.right)
18
19
  end
19
20
  end
20
21
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module Like
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -0,0 +1 @@
1
+ require 'active_record/like'
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.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,40 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-26 00:00:00.000000000 Z
12
+ date: 2013-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: minitest
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '3'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '3'
30
- - !ruby/object:Gem::Dependency
31
- name: sqlite3
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '1.3'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '1.3'
46
14
  - !ruby/object:Gem::Dependency
47
15
  name: activerecord
48
16
  requirement: !ruby/object:Gem::Requirement
@@ -68,6 +36,7 @@ extensions: []
68
36
  extra_rdoc_files: []
69
37
  files:
70
38
  - .gitignore
39
+ - .travis.yml
71
40
  - Gemfile
72
41
  - LICENSE.txt
73
42
  - README.md
@@ -75,6 +44,7 @@ files:
75
44
  - activerecord-like.gemspec
76
45
  - lib/active_record/like.rb
77
46
  - lib/active_record/like/version.rb
47
+ - lib/activerecord-like.rb
78
48
  - test/helper.rb
79
49
  - test/integration/like_test.rb
80
50
  - test/integration/not_like_test.rb
@@ -92,12 +62,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
62
  - - ! '>='
93
63
  - !ruby/object:Gem::Version
94
64
  version: '0'
65
+ segments:
66
+ - 0
67
+ hash: -4576696767238257655
95
68
  required_rubygems_version: !ruby/object:Gem::Requirement
96
69
  none: false
97
70
  requirements:
98
71
  - - ! '>='
99
72
  - !ruby/object:Gem::Version
100
73
  version: '0'
74
+ segments:
75
+ - 0
76
+ hash: -4576696767238257655
101
77
  requirements: []
102
78
  rubyforge_project:
103
79
  rubygems_version: 1.8.24