senro 0.2.2 → 0.3.0

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: 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