rao-query 0.0.48.pre → 0.0.50.pre

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6963df3b6d53ee9358249f17dab0dbf65bc62330de5bb735e98fe425e1dd665c
4
- data.tar.gz: ab862f96ed37ecaa14f10a23bf70ce106678dd9d919ae75894864b3db279fcd7
3
+ metadata.gz: 6ce1a4cf9d5cba42dc47127d986e8f07f51b0418c6b946f03cd994295ea3b337
4
+ data.tar.gz: eccea738821842049daed7f8337f2c6f67bc7500b7cfb067861299211181d8e5
5
5
  SHA512:
6
- metadata.gz: 512d09f819735003f009cdea184ea7c5e79fd9ac2978151187074c2fb082379390817c73517abef69b1ed95b83d493f0c5cff46b21e96d8492821308c5836ef5
7
- data.tar.gz: bbb0f02ebf3c3d052934a868c9acf7baa93b5664b9d8679153f54961707efc2b542fed7487b40d80ee2134a2595ea1adcf94322257e5b7668034539606bde49b
6
+ metadata.gz: e70ba89cf5b845b38ad6742ab7ea1a5e12ef7663229c6127439f3eb67b4c6135d0b7d7e1e658721b7ba870010669f9c2ca659671c21186f16b8fdebfd53c4a00
7
+ data.tar.gz: d4f5990dc6005abf6a12a77f167095bdc26a2114fd0338e5c314dd064002b3fa5761864d4e2ba9dcf43e6af5105a14d899a6597a54d7af36cc3ef26d3047f9e7
data/README.md CHANGED
@@ -1,10 +1,54 @@
1
1
  # Rails Add-Ons Query
2
- Short description and motivation.
3
2
 
4
- ## Usage
5
- How to use my plugin.
3
+ Provides filtering and sorting of collections at controller level. Useful for
4
+ UIs or APIs that display any collection of records.
5
+
6
+ ## Basic Usage
7
+
8
+ Include the concern in your controller and change you index action to use
9
+ conditions coming from the query string:
10
+
11
+ # app/controllers/posts_controller.rb
12
+ class PostsController < ApplicationController
13
+ include Rao::Query::Controller::QueryConcern
14
+
15
+ def index
16
+ @posts = with_conditions_from_query(Post).all
17
+ end
18
+ end
19
+
20
+ ### Using limit
21
+
22
+ ### Using offset
23
+
24
+ ### Using order
25
+
26
+ ### Using includes
27
+
28
+ The includes parameter is used to eager load associations.
29
+
30
+ #### has many
31
+
32
+ Assume you have posts that have many comments. You can have the comments
33
+ included in your query like this:
34
+
35
+ http://localhost:3000/posts?includes[]=comments
36
+
37
+ ## Usage with rao-api-resources_controller
38
+
39
+ rao-api_resources_controller comes with support for rao-query. You just have
40
+ to include the QueryConcern to enable it. There is no need to overwrite the
41
+ index action:
42
+
43
+ # app/controllers/posts_controller.rb
44
+ class PostsController < Rao::Api::ResourcesController::Base
45
+ include Rao::Query::Controller::QueryConcern
46
+
47
+ #...
48
+ end
6
49
 
7
50
  ## Installation
51
+
8
52
  Add this line to your application's Gemfile:
9
53
 
10
54
  ```ruby
@@ -12,17 +56,21 @@ gem 'rao-query'
12
56
  ```
13
57
 
14
58
  And then execute:
59
+
15
60
  ```bash
16
61
  $ bundle
17
62
  ```
18
63
 
19
64
  Or install it yourself as:
65
+
20
66
  ```bash
21
67
  $ gem install rao-query
22
68
  ```
23
69
 
24
70
  ## Contributing
71
+
25
72
  Contribution directions go here.
26
73
 
27
74
  ## License
75
+
28
76
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -47,11 +47,11 @@ module Rao
47
47
  end
48
48
 
49
49
  def default_query_params
50
- request.query_parameters.except(*default_query_params_exceptions)
50
+ request.query_parameters.except(*query_params_exceptions)
51
51
  end
52
52
 
53
- def default_query_params_exceptions
54
- Rao::Query::Configuration.default_query_params_exceptions
53
+ def query_params_exceptions
54
+ @query_params_exceptions ||= Rao::Query::Configuration.default_query_params_exceptions
55
55
  end
56
56
 
57
57
  def normalize_query_params(params)
@@ -18,7 +18,7 @@ module Rao
18
18
  if operator == 'cont'
19
19
  return ["#{table}.#{column} LIKE ?", "%#{normalized_condition(table, column, condition)}%"]
20
20
  else
21
- return ["#{table}.#{column} = ?", normalized_condition(table, column, condition)]
21
+ return ["#{table}.#{column} #{extract_operator(parent_key)} ?", normalized_condition(table, column, condition)]
22
22
  end
23
23
  else
24
24
  if nested
@@ -73,7 +73,7 @@ module Rao
73
73
  # end
74
74
 
75
75
  def extract_table_column_and_operator(string)
76
- if string =~ /([\.a-z_]{1,})\(([a-z_]{2,})\)/
76
+ if string =~ /([\.a-z0-9_]{1,})\(([a-z0-9_]{2,})\)/
77
77
  table_and_column = $~[1]
78
78
  operator = $~[2]
79
79
  column, table_or_association = table_and_column.split('.').reverse
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rao-query
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.48.pre
4
+ version: 0.0.50.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-21 00:00:00.000000000 Z
11
+ date: 2023-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  - !ruby/object:Gem::Version
222
222
  version: 1.3.1
223
223
  requirements: []
224
- rubygems_version: 3.2.24
224
+ rubygems_version: 3.4.20
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: Simple Filter Queries for Ruby on Rails.