pureapi 0.1.1 → 0.2.4

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
  SHA1:
3
- metadata.gz: 628bbd91dbfc41389e809cae66cfb3d54bba240d
4
- data.tar.gz: e03758fcb81833fbb791489a55241dbe1326459e
3
+ metadata.gz: f9e9b3a5e0c3182cb226e18cab0a823d6e51007e
4
+ data.tar.gz: cebc42765564908818d3f4f31429143aa6694474
5
5
  SHA512:
6
- metadata.gz: 4af6e348397ef06958d1db53fc57a113743b79c771dc434e424e322dfcb23785083f5cd3229e35ddbd3ecfdce74179f397daa5ffa5981ee349052bf784e1c9cb
7
- data.tar.gz: d77d76005ffad94bf19c3b72c56a331874fb13df9ff14effc1019c0a1c275265da2eca732a6fba08dc9c94e20f0ae57f69b189e93e9a3da03744cbcf03b028ce
6
+ metadata.gz: 6cf9f0e4ac2dcdde53808ac20f2e675236ccfd52fae55c1cf57c4db9ace98c942ddeb9002e0c7da2f99f3c280a4664a77f60ce2e4874dccd89c20e8e2f2fe51d
7
+ data.tar.gz: e743cc09f7dc373191abc525ef1d0e7e5cc9e50746bb8547d9e621ee67e95d070c9624cfcb2d9c3e95f9b2728ff66b09b36952c766a7898abfba8b3fd65e3c06
data/lib/pureapi/model.rb CHANGED
@@ -157,4 +157,9 @@ module Pureapi::Model
157
157
  def default_onlyasjsons
158
158
  self.column_names.map(&:to_sym)
159
159
  end
160
+
161
+ # Require params is hash contain Integer :page, :per_page
162
+ def paginate(params)
163
+ self.limit(params[:per_page]).offset((params[:page] - 1) * params[:per_page])
164
+ end
160
165
  end
@@ -0,0 +1,69 @@
1
+ require 'active_support/concern'
2
+ require 'pureapi/model'
3
+
4
+ # Provide methods (override, polymorphic) for use data handling
5
+ # # => comfortable with gem mongoid
6
+
7
+ module Pureapi::MongoidModel
8
+ extend ActiveSupport::Concern
9
+ include Pureapi::Model
10
+
11
+ # Define constants
12
+ # Need upgrade with nlike operation
13
+ MONGODB_COMPARISON_OPERATORS = {
14
+ ne: '$ne',
15
+ gt: '$gt',
16
+ lt: '$lt',
17
+ gte: '$gte',
18
+ lte: '$lte',
19
+ like: '$regex',
20
+ regex: '$regex',
21
+ }
22
+
23
+ MONGODB_LOGICAL_OPERATORS = {
24
+ in: '$in'
25
+ }
26
+
27
+ def column_names
28
+ self.attribute_names
29
+ end
30
+
31
+ # Rewrite for comfortable with mongoid
32
+ # Comparsion operator conditions method
33
+ # Array +params+ contains hash = {f, o, v}
34
+ # :f is column name
35
+ # :o is comparsion operator
36
+ # :v is value
37
+ def compconds(params = [])
38
+ criterias = self
39
+
40
+ queries = {}
41
+ params.each do |param|
42
+ if param[:o] == '='
43
+ queries[param[:f]] = param[:v]
44
+ else
45
+ queries[param[:f]] = queries[param[:f]].is_a?(Hash) ? queries[param[:f]] : {}
46
+ queries[param[:f]][MONGODB_COMPARISON_OPERATORS[Pureapi::Model::COMPARISON_OPERATORS_INVERT[param[:o]]]] = param[:v]
47
+ end
48
+ end
49
+
50
+ return criterias.where(queries)
51
+ end
52
+
53
+ # Comparsion operator conditions method
54
+ # Array +params+ contains hash = {f, o, v}
55
+ # :f is column name
56
+ # :o is comparsion operator
57
+ # :v is value
58
+ def logicconds(params = [])
59
+ criterias = self
60
+
61
+ params.each do |param|
62
+ if param[:o] == Pureapi::Model::LOGICAL_OPERATORS[:in]
63
+ criterias = criterias.in(param[:f] => param[:v])
64
+ end
65
+ end
66
+
67
+ return criterias.where({})
68
+ end
69
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pureapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dieu Pham
@@ -9,7 +9,21 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2017-08-10 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.0
13
27
  description: A simple concern in model & controller for api
14
28
  email: dieupv@topica.edu.vn
15
29
  executables:
@@ -21,6 +35,7 @@ files:
21
35
  - lib/pureapi.rb
22
36
  - lib/pureapi/controller.rb
23
37
  - lib/pureapi/model.rb
38
+ - lib/pureapi/mongoid_model.rb
24
39
  homepage: http://rubygems.org/gems/pureapi
25
40
  licenses:
26
41
  - MIT