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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 117f77ddfdeadf0ae912fe3211d78135db7f72adbb55e8531dfc4766954455cc
4
- data.tar.gz: 064f2f56125d4af20753e3a8d88eeea5e1617c58e492f1b8517ed04c2f58b730
3
+ metadata.gz: 573511c8fd193f39ad79529ae7af61b890536bc1ba8d033a1b7e1d9ee8825ed7
4
+ data.tar.gz: a46c43aaf66552a5fe5ff4f50d214dda32ce7777e1994fbe5d0fdcf8018b279f
5
5
  SHA512:
6
- metadata.gz: ab6d2e0870adee08f98c0e7c89761ce59d5e5be9e051e0045b6b0c56625d1d09225ca34ac87223e2b3d41687fe9c35235514c5b2d0479f42ef576cc47d869c9d
7
- data.tar.gz: f8f4c6e08d10cc7e7f7500412714835b67ac3aa234ecd619abba78677ea3d5055713dc12dc2993e6bce67a7b9bd10187f833b985173dcd4942f6c0e4bd417548
6
+ metadata.gz: 626f03645ce25dbd70fd51c19750edd846e864ac16037ba07f9e93d9525c672f14a1c5b2b8a49db24242117e538d87ce33363a7e0649a9dc3e49eedd4dfd1f69
7
+ data.tar.gz: ed442d6cf44fff1e36e211c69279372efd5eebf4a74d1ab4721ef0bc6f10bb5a81a7252b857de92224c547848e9236aa9b56e28b33d6589748ce938f4b143e47
@@ -1,3 +1 @@
1
- h1, h2, h3, h4, h5, h6 {
2
- width: 100%;
3
- }
1
+ h1, h2, h3, h4, h5, h6 { width: 100%; }
@@ -2,17 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <title><%= @title %></title>
5
- <meta charset="utf-8">
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(@payload.to_json)) %></pre></div>
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.2
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
- render inline: "This is the root of your awesome API!"
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 ||= "Rails REST Framework"
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: payload || '', **kwargs)
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, **self.get_model_serializer_config)
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, **self.get_model_serializer_config)
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, **self.get_model_serializer_config)
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, **self.get_model_serializer_config)
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.2
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-17 00:00:00.000000000 Z
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