senro 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38fdc0c7c7b0b4e1506e130a2b7534b65bc621b8bd558201b53dfc5ccdb6c0a1
4
- data.tar.gz: deeb0d935a0426342cb90b01e30ec525f8ec2c5df25dc8fe916e97ff855fa196
3
+ metadata.gz: ad674976759b95336fbb1a2f69447f929d3fc9c92946f59d26667ff8686d31e4
4
+ data.tar.gz: 2495c31d877ceb87a80669706f98ff7addde3c9704f6d52f49e415427686f706
5
5
  SHA512:
6
- metadata.gz: 2d94d9b1cdb7bc75245b1cd09c40148298bbb1d01ada3a691a74ffcb83350c57af569db4aee592be4dafdae0748ca5b4ec34478b0a9aa43d6e408cbcb26a2da6
7
- data.tar.gz: ed0ecffc6f0bf7d1fa0a7fbfe77214f56e18adea847fc41525c76ddac0848cebb1d4a9ef67615887c2c177be95768c662afda464264198f64899774377937e56
6
+ metadata.gz: 54c8f89254370e335df9d565231d041527b30a0bcf45988eb969baa2eb388d82961f41e58e3d466c9f33d7ec7f10ab22aea1c43129e768765d2f8c46b5ddcadc
7
+ data.tar.gz: 64ad5d29a171e9296b426fdffd42483d0e108743489ba5c65198114543c0e174210920e20dd3e8636112e448dddf17b29fbccb48a55e4aa974854be814eb566c
data/.gitignore CHANGED
@@ -12,3 +12,6 @@
12
12
 
13
13
  /vendor/
14
14
  Gemfile.lock
15
+ /spec/senro/dummy/tmp/
16
+ /spec/senro/dummy/log/
17
+ spec/senro/dummy/db/test.sqlite3
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
1
  --format documentation
2
2
  --color
3
- --require spec_helper
3
+ --require rails_helper
data/README.md CHANGED
@@ -20,7 +20,8 @@ Or install it yourself as:
20
20
  $ gem install senro
21
21
 
22
22
  ## Usage
23
- ### QueryParamsFormatter#sort
23
+ ### in plain Ruby
24
+ #### QueryParamsFormatter#sort
24
25
 
25
26
  ```ruby
26
27
  puts params[:sort]
@@ -34,6 +35,20 @@ puts order_clause
34
35
  @items = Item.all.order(order_clause)
35
36
  ```
36
37
 
38
+ ### in Rails
39
+
40
+ ```ruby
41
+ class ApplicationController < ActionController::Base # or ::API class
42
+ include Senro::Controller
43
+ before_action :query_params_formatter_sort
44
+ end
45
+
46
+ pp params['sort']
47
+ # => 'id ASC, name DESC'
48
+ pp params['original_sort']
49
+ # => 'id,-name'
50
+ ```
51
+
37
52
  ## Development
38
53
 
39
54
  - Run `docker-compose up --build` to set up.
data/lib/senro.rb CHANGED
@@ -2,6 +2,7 @@ require 'active_support/core_ext'
2
2
 
3
3
  require "senro/version"
4
4
  require 'senro/query_params_formatter'
5
+ require 'senro/controller'
5
6
 
6
7
  module Senro
7
8
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Senro #:nodoc:
4
+ module Controller
5
+ include Senro::QueryParamsFormatter
6
+
7
+ def query_params_formatter_sort
8
+ return if params[:sort].nil? || params[:sort] == ''
9
+
10
+ params[:original_sort] = params[:sort].clone
11
+ params[:sort] = Senro::QueryParamsFormatter.sort(params[:sort])
12
+ end
13
+ end
14
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Senro
4
- class QueryParamsFormatter
4
+ module QueryParamsFormatter
5
5
  # Format RESTful API's query params to SQL order clause.
6
6
  # +: asc
7
7
  # -: desc
data/lib/senro/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Senro
4
- VERSION = '0.2.2'
4
+ VERSION = '0.3.0'
5
5
  end
data/senro.gemspec CHANGED
@@ -25,8 +25,12 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.17"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "rspec", "~> 3.0"
28
+ spec.add_development_dependency "rspec-rails", '~> 3.9'
29
+ spec.add_development_dependency "rails", ">= 5"
30
+ spec.add_development_dependency "sqlite3"
31
+ spec.add_development_dependency 'pry'
29
32
 
30
33
  spec.required_ruby_version = '>= 2.5'
31
34
  spec.add_runtime_dependency('activesupport', '>= 5')
35
+ spec.add_runtime_dependency('actionpack', '>= 5')
32
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: senro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WalkerSumida
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-19 00:00:00.000000000 Z
11
+ date: 2020-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -39,19 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rspec-rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '3.9'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '3.9'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '5'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: activesupport
57
99
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +108,20 @@ dependencies:
66
108
  - - ">="
67
109
  - !ruby/object:Gem::Version
68
110
  version: '5'
111
+ - !ruby/object:Gem::Dependency
112
+ name: actionpack
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '5'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '5'
69
125
  description: Library for RESTful API
70
126
  email:
71
127
  - walkersumida@gmail.com
@@ -86,6 +142,7 @@ files:
86
142
  - bin/setup
87
143
  - docker-compose.yml
88
144
  - lib/senro.rb
145
+ - lib/senro/controller.rb
89
146
  - lib/senro/query_params_formatter.rb
90
147
  - lib/senro/version.rb
91
148
  - senro.gemspec