graphiti_scaffold_generator 0.1.1 → 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: 72142c6e69ed6bf0be8d2893242fd870ca0f4b070b7a506cacbafa9ab0c9dca3
4
- data.tar.gz: 7f52f99f0bac0e7c93b890c9fbe83fd9acd8bc8453d87f761417c4833cf91d89
3
+ metadata.gz: b1ea8070e7c4359a2c5021e027d896d7ddc2d5055a27fcb0a281a27f12f7edbc
4
+ data.tar.gz: b2f5e9abd43cd2abf1fc5ea0a7ef61c02684baef7a449cd563be747c516ca0bb
5
5
  SHA512:
6
- metadata.gz: a9e34364e9e999694c41b05a8d1a14961d687fb1a205197f3127691103d36f404f83cd27a1fe163ca8efd14fca58a5973a898c0dae061f97087209d4c0ff31e3
7
- data.tar.gz: a6f0239585b55862449777a1ae578e02a05aecd49f6a21fa62600d5772a5feeedd5be7ae4518eec724efca4909cb58f4f65c4c762388bbd1cc6791932041b743
6
+ metadata.gz: a3cd793d22c65a2179381eb348676b83310eacc49f0d746bcd741b38cc21ec0b4dc1452f2cea9b394a0d7d08b72ef4a1654b01ca3a0cedad6210e3b8220c660d
7
+ data.tar.gz: b33848f4ac20285cfe7a9de732042c89c4557b2c286eac6d6ebeb8930396e3fce74a2212e8230e00ee56dc0bc379ea1b242bfa89b0b60e112797be8822da5387
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- graphiti_scaffold_generator (0.1.1)
4
+ graphiti_scaffold_generator (0.1.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -22,7 +22,6 @@
22
22
  end
23
23
  all_attributes = id_attr + all_attributes
24
24
  -%>
25
-
26
25
  <% if File.exist?(File.join %w[spec rails_helper.rb]) -%>
27
26
  require 'rails_helper'
28
27
  <% else -%>
@@ -17,6 +17,9 @@ end
17
17
  module Rspec
18
18
  module Generators
19
19
  class ScaffoldGenerator < Base
20
+ class_option :api_version, type: :string,
21
+ desc: "Defines the version of the api'",
22
+ default: 'v1'
20
23
  source_paths.unshift File.expand_path('../templates', __FILE__)
21
24
  end
22
25
  end
@@ -1,8 +1,8 @@
1
1
  <% resource = class_name + 'Resource' -%>
2
2
  <% pundit = defined?(Pundit) -%>
3
3
  <% module_namespacing do -%>
4
- class <%= controller_class_name %>Controller < ApplicationController
5
- before_action :set_<%= pundit ? 'and_authorise_' : '' %><%= singular_table_name %>, only: %i[ show update destroy ]
4
+ class <%= controller_class_name %>Controller < GraphitiApiController
5
+ before_action :set_<%= pundit ? 'and_authorize_' : '' %><%= singular_table_name %>, only: %i[show update destroy]
6
6
 
7
7
  # GET <%= route_url %>
8
8
  def index
@@ -23,18 +23,18 @@ class <%= controller_class_name %>Controller < ApplicationController
23
23
  <% end -%>
24
24
 
25
25
  if @<%= singular_table_name %>.save
26
- render jsonapi: <%= singular_table_name %>, status: :created
26
+ render jsonapi: @<%= singular_table_name %>, status: :created
27
27
  else
28
- render jsonapi_errors: <%= singular_table_name %>
28
+ render jsonapi_errors: @<%= singular_table_name %>
29
29
  end
30
30
  end
31
31
 
32
32
  # PATCH/PUT <%= route_url %>/1
33
33
  def update
34
34
  if @<%= singular_table_name %>.update_attributes
35
- render jsonapi: <%= singular_table_name %>
35
+ render jsonapi: @<%= singular_table_name %>
36
36
  else
37
- render jsonapi_errors: <%= singular_table_name %>
37
+ render jsonapi_errors: @<%= singular_table_name %>
38
38
  end
39
39
  end
40
40
 
@@ -46,10 +46,10 @@ class <%= controller_class_name %>Controller < ApplicationController
46
46
  private
47
47
 
48
48
  # Use callbacks to share common setup or constraints between actions.
49
- def set_<%= pundit ? 'and_authorise_' : '' %><%= singular_table_name %>
49
+ def set_<%= pundit ? 'and_authorize_' : '' %><%= singular_table_name %>
50
50
  @<%= singular_table_name %> = <%= resource %>.find(params)
51
51
  <% if pundit -%>
52
- authorize @<%= singular_table_name %>
52
+ authorize @<%= singular_table_name %>.data
53
53
  <% end -%>
54
54
  end
55
55
 
@@ -61,7 +61,7 @@ class <%= controller_class_name %>Controller < ApplicationController
61
61
  list = %i[
62
62
  <%= attributes_names.join(' ') %>
63
63
  ]
64
- params.require(:<%= singular_table_name %>).permit(*list)
64
+ params.require(:data).require(:attributes).permit(*list)
65
65
  <%- end -%>
66
66
  end
67
67
  end
@@ -57,6 +57,16 @@ describe "Request /<%= name.underscore.pluralize %>", <%= type_metatag(:request)
57
57
  {}
58
58
  }
59
59
 
60
+ <% if pundit -%>
61
+ before do
62
+ allow_any_instance_of(GraphitiApiController).to receive(:authorize)
63
+ .and_return UserAbsence
64
+ allow_any_instance_of(GraphitiApiController).to receive(:current_user)
65
+ .and_return(user)
66
+ allow_any_instance_of(GraphitiApiController).to receive :authenticate_user!
67
+ end
68
+ <% end -%>
69
+
60
70
  <% unless options[:singleton] -%>
61
71
  describe 'GET /index' do
62
72
  it "renders a successful response" do
@@ -152,17 +162,17 @@ describe "Request /<%= name.underscore.pluralize %>", <%= type_metatag(:request)
152
162
  attributes: new_attributes,
153
163
  }
154
164
  end
155
- let(:new_attributes) {
165
+ let(:new_attributes) do
156
166
  skip("Add a hash of attributes valid for <%= class_name %>")
157
- { <%= attribute_name %>: 'New <%= attribute_name %>' }
158
- }
167
+ { <%= attribute_name %>: 'New <%= attribute_name %>' }
168
+ end
159
169
 
160
170
  context "with valid parameters" do
161
171
  it "updates the requested <%= file_name %>" do
162
172
  patch_update
163
173
  <%= file_name %>.reload
164
174
  skip("Add assertions for updated state")
165
- <%= file_name %>.<%= attribute_name %> == 'New <%= attribute_name %>'
175
+ expect(<%= file_name %>.<%= attribute_name %>). to eq 'New <%= attribute_name %>'
166
176
  end
167
177
 
168
178
  it 'returns :ok' do
@@ -0,0 +1,53 @@
1
+ <% prefix = "/api/#{options[:api_version]}" if options[:api] -%>
2
+ require "rails_helper"
3
+
4
+ <% module_namespacing do -%>
5
+ describe <%= controller_class_name %>Controller, <%= type_metatag(:routing) %> do
6
+ describe "routing" do
7
+ <% unless options[:singleton] -%>
8
+ it "routes to #index" do
9
+ expect(get: "<%= prefix %>/<%= ns_table_name %>")
10
+ .to route_to "<%= ns_table_name %>#index", "format"=>:jsonapi
11
+ end
12
+
13
+ <% end -%>
14
+ <% unless options[:api] -%>
15
+ it "routes to #new" do
16
+ expect(get: "/<%= ns_table_name %>/new").to route_to("<%= ns_table_name %>#new")
17
+ end
18
+
19
+ <% end -%>
20
+ it "routes to #show" do
21
+ expect(get: "<%= prefix %>/<%= ns_table_name %>/1")
22
+ .to route_to "<%= ns_table_name %>#show", id: "1", "format"=>:jsonapi
23
+ end
24
+
25
+ <% unless options[:api] -%>
26
+ it "routes to #edit" do
27
+ expect(get: "/<%= ns_table_name %>/1/edit").to route_to("<%= ns_table_name %>#edit", id: "1")
28
+ end
29
+
30
+ <% end -%>
31
+
32
+ it "routes to #create" do
33
+ expect(post: "<%= prefix %>/<%= ns_table_name %>")
34
+ .to route_to "<%= ns_table_name %>#create", "format"=>:jsonapi
35
+ end
36
+
37
+ it "routes to #update via PUT" do
38
+ expect(put: "<%= prefix %>/<%= ns_table_name %>/1")
39
+ .to route_to "<%= ns_table_name %>#update", id: "1", "format"=>:jsonapi
40
+ end
41
+
42
+ it "routes to #update via PATCH" do
43
+ expect(patch: "<%= prefix %>/<%= ns_table_name %>/1")
44
+ .to route_to "<%= ns_table_name %>#update", id: "1", "format"=>:jsonapi
45
+ end
46
+
47
+ it "routes to #destroy" do
48
+ expect(delete: "<%= prefix %>/<%= ns_table_name %>/1")
49
+ .to route_to "<%= ns_table_name %>#destroy", id: "1", "format"=>:jsonapi
50
+ end
51
+ end
52
+ end
53
+ <% end -%>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GraphitiScaffoldGenerator
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphiti_scaffold_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Kulikov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-21 00:00:00.000000000 Z
11
+ date: 2023-11-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  The graphiti gem has no support for scaffold generator.
@@ -37,6 +37,7 @@ files:
37
37
  - lib/graphiti_scaffold_generator/generators/rails/scaffold_controller_generator.rb
38
38
  - lib/graphiti_scaffold_generator/generators/rails/templates/api_controller.rb
39
39
  - lib/graphiti_scaffold_generator/generators/rails/templates/api_request_spec.rb
40
+ - lib/graphiti_scaffold_generator/generators/rails/templates/routing_spec.rb
40
41
  - lib/graphiti_scaffold_generator/railtie.rb
41
42
  - lib/graphiti_scaffold_generator/version.rb
42
43
  homepage: https://github.com/dima4p/graphiti_scaffold_generator