rest_framework 0.0.2 → 0.0.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 +4 -4
- data/app/assets/stylesheets/rest_framework.css +1 -3
- data/app/views/layouts/rest_framework.html.erb +3 -12
- data/app/views/rest_framework/_head.html.erb +20 -0
- data/lib/rest_framework/VERSION_STAMP +1 -1
- data/lib/rest_framework/controllers/base.rb +12 -4
- data/lib/rest_framework/controllers/models.rb +4 -5
- metadata +3 -3
- data/app/assets/javascripts/rest_framework.js +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 573511c8fd193f39ad79529ae7af61b890536bc1ba8d033a1b7e1d9ee8825ed7
|
4
|
+
data.tar.gz: a46c43aaf66552a5fe5ff4f50d214dda32ce7777e1994fbe5d0fdcf8018b279f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 626f03645ce25dbd70fd51c19750edd846e864ac16037ba07f9e93d9525c672f14a1c5b2b8a49db24242117e538d87ce33363a7e0649a9dc3e49eedd4dfd1f69
|
7
|
+
data.tar.gz: ed442d6cf44fff1e36e211c69279372efd5eebf4a74d1ab4721ef0bc6f10bb5a81a7252b857de92224c547848e9236aa9b56e28b33d6589748ce938f4b143e47
|
@@ -2,17 +2,7 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title><%= @title %></title>
|
5
|
-
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
7
|
-
<%= csrf_meta_tags %>
|
8
|
-
<%= csp_meta_tag %>
|
9
|
-
|
10
|
-
<%= favicon_link_tag 'rest_framework_favicon.ico' %>
|
11
|
-
|
12
|
-
<%= stylesheet_link_tag 'application', media: 'all' %>
|
13
|
-
<%= javascript_include_tag 'application' %>
|
14
|
-
<%= stylesheet_link_tag 'rest_framework', media: 'all' %>
|
15
|
-
<%= javascript_include_tag 'rest_framework' %>
|
5
|
+
<%= render partial: 'rest_framework/head' %>
|
16
6
|
</head>
|
17
7
|
|
18
8
|
<body>
|
@@ -31,9 +21,10 @@
|
|
31
21
|
<div class="row">
|
32
22
|
<h1><%= @title %></h1>
|
33
23
|
</div>
|
24
|
+
<hr/>
|
34
25
|
<div class="row">
|
35
26
|
<h2>Payload</h2><br>
|
36
|
-
<div><pre><%= JSON.pretty_generate(JSON.parse(@
|
27
|
+
<div><pre><%= JSON.pretty_generate(JSON.parse(@serialized_payload)) %></pre></div>
|
37
28
|
</div>
|
38
29
|
<% unless @routes.blank? %>
|
39
30
|
<div class="row">
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<meta charset="utf-8">
|
2
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
3
|
+
<%= csrf_meta_tags %>
|
4
|
+
<%= csp_meta_tag rescue nil %>
|
5
|
+
<%= favicon_link_tag 'rest_framework_favicon.ico' rescue nil %>
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
8
|
+
<style>
|
9
|
+
h1,h2,h3,h4,h5,h6 { width: 100%; }
|
10
|
+
h1 { font-size: 2rem; }
|
11
|
+
h2 { font-size: 1.7rem; }
|
12
|
+
h3 { font-size: 1.5rem; }
|
13
|
+
h4 { font-size: 1.3rem; }
|
14
|
+
h5 { font-size: 1.1rem; }
|
15
|
+
h6 { font-size: 1rem; }
|
16
|
+
</style>
|
17
|
+
|
18
|
+
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
|
19
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
|
20
|
+
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
|
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
@@ -22,9 +22,8 @@ module RESTFramework
|
|
22
22
|
# is defined.
|
23
23
|
module BaseControllerMixin
|
24
24
|
# Default action for API root.
|
25
|
-
# TODO: use api_response and show sub-routes.
|
26
25
|
def root
|
27
|
-
|
26
|
+
api_response({message: "This is the root of your awesome API!"})
|
28
27
|
end
|
29
28
|
|
30
29
|
protected
|
@@ -52,6 +51,7 @@ module RESTFramework
|
|
52
51
|
# rescue_from
|
53
52
|
# end
|
54
53
|
|
54
|
+
_restframework_attr_reader(:singleton_controller)
|
55
55
|
_restframework_attr_reader(:extra_actions, default: {})
|
56
56
|
_restframework_attr_reader(:template_logo_text, default: 'Rails REST Framework')
|
57
57
|
|
@@ -92,13 +92,21 @@ module RESTFramework
|
|
92
92
|
html_kwargs ||= {}
|
93
93
|
json_kwargs ||= {}
|
94
94
|
|
95
|
+
# serialize
|
96
|
+
if self.respond_to?(:get_model_serializer_config, true)
|
97
|
+
serialized_payload = payload.to_json(**self.get_model_serializer_config)
|
98
|
+
else
|
99
|
+
serialized_payload = payload.to_json
|
100
|
+
end
|
101
|
+
|
95
102
|
respond_to do |format|
|
96
103
|
format.html {
|
97
104
|
kwargs = kwargs.merge(html_kwargs)
|
98
|
-
@template_logo_text ||=
|
105
|
+
@template_logo_text ||= self.class.template_logo_text
|
99
106
|
@title ||= self.controller_name.camelize
|
100
107
|
@routes ||= self._get_routes
|
101
108
|
@payload = payload
|
109
|
+
@serialized_payload = serialized_payload
|
102
110
|
begin
|
103
111
|
render(**kwargs)
|
104
112
|
rescue ActionView::MissingTemplate # fallback to rest_framework default view
|
@@ -108,7 +116,7 @@ module RESTFramework
|
|
108
116
|
}
|
109
117
|
format.json {
|
110
118
|
kwargs = kwargs.merge(json_kwargs)
|
111
|
-
render(json:
|
119
|
+
render(json: serialized_payload || '', **kwargs)
|
112
120
|
}
|
113
121
|
end
|
114
122
|
end
|
@@ -21,7 +21,6 @@ module RESTFramework
|
|
21
21
|
|
22
22
|
_restframework_attr_reader(:model)
|
23
23
|
_restframework_attr_reader(:recordset)
|
24
|
-
_restframework_attr_reader(:singleton_controller)
|
25
24
|
|
26
25
|
_restframework_attr_reader(:fields)
|
27
26
|
_restframework_attr_reader(:list_fields)
|
@@ -152,14 +151,14 @@ module RESTFramework
|
|
152
151
|
# TODO: pagination classes like Django
|
153
152
|
def index
|
154
153
|
@records = self.get_filtered_recordset
|
155
|
-
api_response(@records
|
154
|
+
api_response(@records)
|
156
155
|
end
|
157
156
|
end
|
158
157
|
|
159
158
|
module ShowModelMixin
|
160
159
|
def show
|
161
160
|
@record = self.get_record
|
162
|
-
api_response(@record
|
161
|
+
api_response(@record)
|
163
162
|
end
|
164
163
|
end
|
165
164
|
|
@@ -170,7 +169,7 @@ module RESTFramework
|
|
170
169
|
rescue ActiveRecord::RecordInvalid => e
|
171
170
|
api_response(e.record.messages, status: 400)
|
172
171
|
end
|
173
|
-
api_response(@record
|
172
|
+
api_response(@record)
|
174
173
|
end
|
175
174
|
end
|
176
175
|
|
@@ -180,7 +179,7 @@ module RESTFramework
|
|
180
179
|
if @record
|
181
180
|
@record.attributes(self.get_update_params)
|
182
181
|
@record.save!
|
183
|
-
api_response(@record
|
182
|
+
api_response(@record)
|
184
183
|
else
|
185
184
|
api_response({detail: "Record not found."}, status: 404)
|
186
185
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest_framework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregory N. Schmit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -34,9 +34,9 @@ files:
|
|
34
34
|
- LICENSE
|
35
35
|
- README.md
|
36
36
|
- app/assets/images/rest_framework_favicon.ico
|
37
|
-
- app/assets/javascripts/rest_framework.js
|
38
37
|
- app/assets/stylesheets/rest_framework.css
|
39
38
|
- app/views/layouts/rest_framework.html.erb
|
39
|
+
- app/views/rest_framework/_head.html.erb
|
40
40
|
- app/views/rest_framework/_routes.html.erb
|
41
41
|
- app/views/rest_framework/default.html.erb
|
42
42
|
- lib/rest_framework.rb
|
File without changes
|