lazer-rails 0.1.2 → 0.1.3

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: cc2e674605e33597818bb8e0ad5a0dad8bcc0c31b5fa2907649e83e761edc354
4
- data.tar.gz: 462b6bce9289b85cbe26534a99f112fa7f054164c4bc52163566d21f7c2d9d41
3
+ metadata.gz: 4975e7de464d555dca3ff2f70d171a4f7bf95a54bfa8bd5dae0c8846f7e9ca99
4
+ data.tar.gz: df159f5a0feda0a168dda60fcd6ee50dc6f19c463bccd840c106288aaa3beb0d
5
5
  SHA512:
6
- metadata.gz: 9a3c0a0e7212042c0f628269b0d191190dd30c97b0cf2c523ac5322b751162da471fc7fa77d6f4fa07c0734cf9f9a57efbd810311e0abc478e1b1cf8a9bd9a22
7
- data.tar.gz: 9f40377815e25567957e1108c034a89a25cffac2ceb996569b56fc20f9105fd913b28fd59f909281c40f2de52742352ed0ef247ec2c4d0e794482b891510c671
6
+ metadata.gz: bfad89b32fe73418e740819f6e1386c251696eacb149293347eb843ed35b37fd9fa9b96386a8d0c57b6b2df61ce6bedaed33b6ecbfc439b7fc7f29c5c22e4de8
7
+ data.tar.gz: 9e0073dc322d8e2a79482ae8b022f0677ae36f06014dcd8d74e0ec5132746bba96a2051469a9ed92be1556f0f21c6b405d7eb0fe146a104e7e5a24a0aac38c79
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Lazer Ruby Gem
2
2
 
3
- This gem provides a Rails engine that allows Lazer to import your apps scopes and Active Record relationships.
3
+ This gem provides a Rails engine that allows Lazer to import your app's scopes and Active Record relationships.
4
4
 
5
5
  ## Installation
6
6
  Add this line to your application's Gemfile:
@@ -4,12 +4,26 @@ module Lazer
4
4
  class ScopesController < ApplicationController
5
5
 
6
6
  def show
7
- render json: try_all_models.to_json
8
- end
7
+ require_page!; return if performed?
8
+
9
+ page = params[:page].to_i
10
+ models_per_page = 30
11
+ offset = (page - 1) * models_per_page
9
12
 
10
- def try_all_models
11
13
  Rails.application.eager_load!
12
- models = ActiveRecord::Base.descendants
14
+ all_models = ActiveRecord::Base.descendants.sort_by(&:name)
15
+ paged_models = all_models[offset, models_per_page] || []
16
+
17
+ result = {}
18
+
19
+ result[:count] = paged_models.length
20
+ result[:page] = page
21
+ result[:offset] = offset
22
+ result[:scopes] = fetch_scopes_for(paged_models)
23
+ render json: result.to_json
24
+ end
25
+
26
+ def fetch_scopes_for(models)
13
27
  worked = []
14
28
  failed = []
15
29
  data = {}
@@ -67,5 +81,12 @@ module Lazer
67
81
  result
68
82
  end
69
83
 
84
+ def require_page!
85
+ if params[:page].blank?
86
+ render json: "You must specify a page param", status: 422
87
+ return
88
+ end
89
+ end
90
+
70
91
  end
71
92
  end
data/lib/lazer/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lazer
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazer-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vic Ramon