search_cop 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md ADDED
@@ -0,0 +1,37 @@
1
+
2
+ # Changelog
3
+
4
+ Version 1.0.1:
5
+
6
+ * Inheritance fix
7
+
8
+ Version 1.0.0:
9
+
10
+ * Project name changed to SearchCop
11
+ * Scope support added
12
+ * Multiple DSL changes
13
+
14
+ Version 0.0.5:
15
+
16
+ * Supporting :default => false
17
+ * Datetime/Date greater operator fix
18
+ * Use reflection to find associated models
19
+ * Providing reflection
20
+
21
+ Version 0.0.4:
22
+
23
+ * Fixed date attributes
24
+ * Fail softly for mixed datatype attributes
25
+ * Support custom table, class and alias names via attr_searchable_alias
26
+
27
+ Version 0.0.3:
28
+
29
+ * belongs_to association fixes
30
+
31
+ Version 0.0.2:
32
+
33
+ * Arel abstraction layer added
34
+ * count() queries resulting in "Cannot visit AttrSearchableGrammar::Nodes..." fixed
35
+ * Better error messages
36
+ * Model#unsafe_search added
37
+
data/MIGRATION.md CHANGED
@@ -6,6 +6,26 @@ to change its DSL and name, as no `attr_searchable` method is present anymore.
6
6
  The new DSL is cleaner and more concise. Morever, the migration process is
7
7
  simple.
8
8
 
9
+ ## Installation
10
+
11
+ Change
12
+
13
+ gem 'attr_searchable'
14
+
15
+ to
16
+
17
+ gem 'search_cop'
18
+
19
+ And then execute:
20
+
21
+ $ bundle
22
+
23
+ Or install it yourself as:
24
+
25
+ $ gem install search_cop
26
+
27
+ ## General DSL
28
+
9
29
  AttrSearchable:
10
30
 
11
31
  ```ruby
@@ -44,7 +64,7 @@ class Book < ActiveRecord::Base
44
64
  end
45
65
  ```
46
66
 
47
- # Reflection
67
+ ## Reflection
48
68
 
49
69
  AttrSearchable:
50
70
 
data/README.md CHANGED
@@ -42,7 +42,7 @@ As the set of features of AttrSearchable grew and grew, it has been neccessary
42
42
  to change its DSL and name, as no `attr_searchable` method is present anymore.
43
43
  The new DSL is cleaner and more concise. Morever, the migration process is
44
44
  simple. Please take a look into the migration guide
45
- [MIGRATION.md](https://github.com/mrkamel/search_cop/MIGRATION.md)
45
+ [MIGRATION.md](https://github.com/mrkamel/search_cop/blob/master/MIGRATION.md)
46
46
 
47
47
  ## Installation
48
48
 
@@ -79,6 +79,22 @@ class Book < ActiveRecord::Base
79
79
  end
80
80
  ```
81
81
 
82
+ You can of course as well specify multiple `search_scope` blocks as you like:
83
+
84
+ ```ruby
85
+ search_scope :admin_search do
86
+ attributes :title, :description, :stock, :price, :created_at, :available
87
+
88
+ # ...
89
+ end
90
+
91
+ search_scope :user_search do
92
+ attributes :title, :description
93
+
94
+ # ...
95
+ end
96
+ ```
97
+
82
98
  ## How does it work
83
99
 
84
100
  SearchCop parses the query and maps it to an SQL Query using Arel.
@@ -226,6 +242,13 @@ one of the easiest ways is:
226
242
  ActiveRecord::Base.connection.execute "CREATE INDEX fulltext_index_books_on_title ON books USING GIN(to_tsvector('simple', title))"
227
243
  ```
228
244
 
245
+ Moreover, for PostgreSQL you should change the schema format in
246
+ `config/application.rb`:
247
+
248
+ ```ruby
249
+ config.active_record.schema_format = :sql
250
+ ```
251
+
229
252
  Regarding compound indices for PostgreSQL, use:
230
253
 
231
254
  ```ruby
@@ -488,6 +511,11 @@ Product.search_reflection(:search).default_attributes
488
511
  # ...
489
512
  ```
490
513
 
514
+ ## Semantic Versioning
515
+
516
+ Starting with version 1.0.0, SearchCop uses Semantic Versioning:
517
+ [SemVer](http://semver.org/)
518
+
491
519
  ## Contributing
492
520
 
493
521
  1. Fork it
@@ -496,35 +524,3 @@ Product.search_reflection(:search).default_attributes
496
524
  4. Push to the branch (`git push origin my-new-feature`)
497
525
  5. Create new Pull Request
498
526
 
499
- ## Changelog
500
-
501
- Version 1.0.0:
502
-
503
- * Project name changed to SearchCop
504
- * Scope support added
505
- * Multiple DSL changes
506
-
507
- Version 0.0.5:
508
-
509
- * Supporting :default => false
510
- * Datetime/Date greater operator fix
511
- * Use reflection to find associated models
512
- * Providing reflection
513
-
514
- Version 0.0.4:
515
-
516
- * Fixed date attributes
517
- * Fail softly for mixed datatype attributes
518
- * Support custom table, class and alias names via attr_searchable_alias
519
-
520
- Version 0.0.3:
521
-
522
- * belongs_to association fixes
523
-
524
- Version 0.0.2:
525
-
526
- * Arel abstraction layer added
527
- * count() queries resulting in "Cannot visit AttrSearchableGrammar::Nodes..." fixed
528
- * Better error messages
529
- * Model#unsafe_search added
530
-
@@ -1,3 +1,3 @@
1
1
  module SearchCop
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/lib/search_cop.rb CHANGED
@@ -32,16 +32,14 @@ module SearchCop
32
32
 
33
33
  base.class_attribute :search_scopes
34
34
  base.search_scopes = {}
35
-
36
- base.search_scopes[:search] = SearchScope.new(:search, base)
37
35
  end
38
36
 
39
37
  module ClassMethods
40
38
  def search_scope(name, &block)
41
- search_scope = search_scopes[name] || SearchScope.new(name, self)
42
- search_scope.instance_exec(&block)
39
+ self.search_scopes = search_scopes.dup
43
40
 
44
- search_scopes[name] = search_scope
41
+ search_scopes[name] = SearchScope.new(name, self)
42
+ search_scopes[name].instance_exec(&block)
45
43
 
46
44
  self.class.send(:define_method, name) { |query| search_cop query, name }
47
45
  self.class.send(:define_method, "unsafe_#{name}") { |query| unsafe_search_cop query, name }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: search_cop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
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-07-29 00:00:00.000000000 Z
12
+ date: 2014-08-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: treetop
@@ -133,6 +133,7 @@ files:
133
133
  - .gitignore
134
134
  - .travis.yml
135
135
  - Appraisals
136
+ - CHANGELOG.md
136
137
  - Gemfile
137
138
  - LICENSE.txt
138
139
  - MIGRATION.md