rest_framework 0.0.2 → 0.0.3

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
  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