generic_controller 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generic_controller.rb +23 -7
  3. metadata +15 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ae2943e8da1b0ecfc4f14dd322fe1e30e6ef4f47
4
- data.tar.gz: 2fabdff692eb2e2fcd5dc3253df6379e0c0e07c7
3
+ metadata.gz: 8316f347388ea0e165f7d16de4f477e2b45908e3
4
+ data.tar.gz: 804166ffc45278ee8e4856dc82faf68678804b80
5
5
  SHA512:
6
- metadata.gz: 1e15d536349a170dcb8374a1d7c2ff877e51a89ea729da478597e6abf69e9f10d958afed1f124d4b3aa2ba9fde76fe402bac40f0202cd196044d9f7682e8162f
7
- data.tar.gz: 11aed9c46035d6c6a5852349d248411519ed3aa95e82f4d46810d5c00ddfd185f10bf0217e9a236e3763c88ffd633b9c39c93af21efabb7e789aafa61135eb8b
6
+ metadata.gz: 3fc95df1f58a9c956dfce64c1bebcefe0d75114ace1890a9f59d9195f5e6623094990d30253fd0e42f1d08cef35679715118290f651631db921d88c67b2645d3
7
+ data.tar.gz: a17a154ad4e2c365a983a8fa4f23f1c331d0e208ca285a5b9f6d8383bb3dffa758f6b7ce40d2daf12d6e2742480bb19c0c0c847a88bd7e7d0c76a6c59e88497f
@@ -57,17 +57,22 @@ class GenericController < ActionController::Base
57
57
  l = limit.to_i
58
58
  p = page.to_i
59
59
  o = order_by.to_sym
60
+ off = offset.to_sym
60
61
  s = sort.to_sym
61
62
  respond_to do |f|
62
63
  f.any do
63
64
  render({
64
- json: query.order(o => s).page(p).per(l),
65
+ json: query.order(o => s)
66
+ .page(p)
67
+ .per(l)
68
+ .offset(off),
65
69
  meta: {
66
70
  total: query.count(:all),
67
71
  page: p,
68
72
  limit: l,
69
73
  order_by: o,
70
- sort: s
74
+ sort: s,
75
+ offset: off
71
76
  },
72
77
  each_serializer: each_sez,
73
78
  status: :ok
@@ -86,20 +91,24 @@ class GenericController < ActionController::Base
86
91
  "#{norm_controller_name}Serializer".constantize
87
92
  end
88
93
 
89
- def page
90
- params[:page] ||= 1
91
- end
92
-
93
94
  def limit
94
95
  params[:limit] ||= 20
95
96
  end
96
97
 
98
+ def offset
99
+ params[:offset] ||= 0
100
+ end
101
+
97
102
  def order_by
98
103
  return params[:order_by] if model.column_names.include?(params[:order_by])
99
104
 
100
105
  'id'
101
106
  end
102
107
 
108
+ def page
109
+ params[:page] ||= 1
110
+ end
111
+
103
112
  def sort
104
113
  params[:sort].in?(VALID_SORT) ? params[:sort] : VALID_SORT[0]
105
114
  end
@@ -117,7 +126,14 @@ class GenericController < ActionController::Base
117
126
  end
118
127
 
119
128
  def cscope
120
- model
129
+ cs = model
130
+ cs = cs.where(['updated_at >= ?', parse_time(params[:updated_since])]) if params[:updated_since]
131
+ cs = cs.where(['created_at >= ?', parse_time(params[:created_since])]) if params[:created_since]
132
+ cs
133
+ end
134
+
135
+ def parse_time(s)
136
+ Time.zone.parse(s)
121
137
  end
122
138
 
123
139
  def attach_resource
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generic_controller
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Meldrum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-29 00:00:00.000000000 Z
11
+ date: 2016-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
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
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: An opinionated generic resource-oriented controller for rails.
@@ -77,7 +77,8 @@ files:
77
77
  - spec/lib/generic_controller_spec.rb
78
78
  - spec/spec_helper.rb
79
79
  homepage: https://github.com/htmldrum/generic_controller
80
- licenses: []
80
+ licenses:
81
+ - MIT
81
82
  metadata: {}
82
83
  post_install_message:
83
84
  rdoc_options: []
@@ -85,19 +86,18 @@ require_paths:
85
86
  - lib
86
87
  required_ruby_version: !ruby/object:Gem::Requirement
87
88
  requirements:
88
- - - ">="
89
+ - - '>='
89
90
  - !ruby/object:Gem::Version
90
91
  version: '0'
91
92
  required_rubygems_version: !ruby/object:Gem::Requirement
92
93
  requirements:
93
- - - ">="
94
+ - - '>='
94
95
  - !ruby/object:Gem::Version
95
96
  version: '0'
96
97
  requirements: []
97
98
  rubyforge_project: generic_controller
98
- rubygems_version: 2.5.1
99
+ rubygems_version: 2.0.14.1
99
100
  signing_key:
100
101
  specification_version: 4
101
102
  summary: ActionController subclass with conveience
102
103
  test_files: []
103
- has_rdoc: