api_scaffold 0.1.5 → 0.1.6

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: de9076335da73692a8f0939ed95bc1b3a16a84bbd48b3a6ff79944cb92a75334
4
- data.tar.gz: 370118c487da1671f38b351e15eade622d5cf761d9d08552fa005b699acb156e
3
+ metadata.gz: b849a097b4d3de796e261221a6d46245f92eb5abf6cdc5b169b6113896612594
4
+ data.tar.gz: a9c0066a65c33bd6a5a95b72af2e231df9a472c3dd7fdc42431c5c07f165e68c
5
5
  SHA512:
6
- metadata.gz: 7c80e4e950a0d7af2cfeaa1b20b7c5e269df98acbb2e93ab3dbfdd754612c018ceaf1c84542589bc882d9ea24bf051aab40b70bd69fef3b26dd2df93b00aa0ba
7
- data.tar.gz: 82f2d6485ad5d7eb67d38e318ec68a9788628773a76cbfbc2e58dcaca5059cbf845e1f6290ee3a8aa2c950cfc4a723fc182f1856e8304a768beacc748dcc3ba8
6
+ metadata.gz: a4fd95d6617e0286e26c07f80be7930731643bf8c4f84970a5c1224a4b28dc7050eb983487d8dfa9de42822a945554ed4a1dc80b79e77c0b60c1704241b2c984
7
+ data.tar.gz: 8c33ea95c27483219ee09595956486556b36716bc28e43c81be98398d7854cc047ebebed894296dc9f6b5d222eebe4771ed7615070ec5b26d107c42ca042ecf1
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ApiScaffold
2
2
 
3
- A useful Rails API generator for scaffolding. Compatible with :
3
+ A useful Rails API generator for scaffolding. Compatible with :
4
4
  - Fast JSON API/Active Model Serializers
5
5
  - Rspec/TestUnit/Fixtures/FactoryBot
6
6
  - Api Pagination
@@ -26,7 +26,7 @@ Or install it yourself as:
26
26
  Add this code to config/routes.rb if you want your routes to be inserted under the v1 namespace.
27
27
 
28
28
  ```ruby
29
- scope :api, defaults: { format: :json } do
29
+ namespace :api, defaults: { format: :json } do
30
30
  namespace :v1 do
31
31
  end
32
32
  end
@@ -42,8 +42,7 @@ If you wish to specify the api version:
42
42
 
43
43
  ## TODO
44
44
  - Make compatible with nested resources
45
- - Add apiepie to controller scaffold if apipie is installed
46
- - create individual scaffolds for controller, authentication and tests
45
+ - Add api docs to controller scaffold
47
46
 
48
47
  ## Contributing
49
48
 
@@ -1,3 +1,3 @@
1
1
  module ApiScaffold
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -25,17 +25,17 @@ module ApiScaffold
25
25
 
26
26
  def create_controller_files
27
27
  if gem_available?('fast_jsonapi') || gem_available?('active_model_serializers')
28
- template "controllers/serializer_controller.rb", File.join("app/controllers/", prefix, "#{controller_file_name}_controller.rb")
28
+ template "controllers/serializer_controller.rb", File.join("app/controllers/api/", prefix, "#{controller_file_name}_controller.rb")
29
29
  else
30
- template "controllers/controller.rb", File.join("app/controllers/", prefix, "#{controller_file_name}_controller.rb")
30
+ template "controllers/controller.rb", File.join("app/controllers/api", prefix, "#{controller_file_name}_controller.rb")
31
31
  end
32
32
  end
33
33
 
34
34
  def create_controller_test_files
35
35
  if test_framework == :rspec
36
- template "tests/rspec/controller_spec.rb", File.join("spec/controllers", prefix, "#{controller_file_name}_controller_spec.rb")
36
+ template "tests/rspec/controller_spec.rb", File.join("spec/controllers/api", prefix, "#{controller_file_name}_controller_spec.rb")
37
37
  else
38
- template "tests/test_unit/controller_spec.rb", File.join("test/controllers", prefix, "#{controller_file_name}_controller_test.rb")
38
+ template "tests/test_unit/controller_spec.rb", File.join("test/controllers/api", prefix, "#{controller_file_name}_controller_test.rb")
39
39
  end
40
40
  end
41
41
 
@@ -43,7 +43,7 @@ module ApiScaffold
43
43
  # Include tabs and line break for proper formatting
44
44
  routes_string = " resources :#{controller_file_name}, except: [:new, :edit]\n"
45
45
  # Inject into file following the api scope and v1 namespace
46
- inject_into_file 'config/routes.rb', after: " scope :api, defaults: { format: :json } do\n namespace :#{prefix} do\n" do
46
+ inject_into_file 'config/routes.rb', after: " namespace :api, defaults: { format: :json } do\n namespace :#{prefix} do\n" do
47
47
  routes_string
48
48
  end
49
49
  end
@@ -7,15 +7,15 @@ module ApiScaffold
7
7
  end
8
8
 
9
9
  def prefixed_class_name
10
- "#{prefix.capitalize}::#{class_name}"
10
+ "Api::#{prefix.capitalize}::#{class_name}"
11
11
  end
12
12
 
13
13
  def prefixed_controller_class_name
14
- "#{prefix.capitalize}::#{controller_class_name}"
14
+ "Api::#{prefix.capitalize}::#{controller_class_name}"
15
15
  end
16
16
 
17
17
  def prefixed_url(resource)
18
- [prefix, resource, 'url'].join('_')
18
+ ['api', prefix, resource, 'url'].join('_')
19
19
  end
20
20
 
21
21
  def gem_available?(gem_name)
@@ -19,7 +19,7 @@ class <%= prefixed_controller_class_name %>Controller < ApplicationController
19
19
  @<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
20
20
 
21
21
  if @<%= orm_instance.save %>
22
- render json: <%= "@#{singular_table_name}" %>, status: :created, location: [:<%= prefix %>, <%= "@#{singular_table_name}" %>]
22
+ render json: <%= "@#{singular_table_name}" %>, status: :created, location: [:api, :<%= prefix %>, <%= "@#{singular_table_name}" %>]
23
23
  else
24
24
  render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity
25
25
  end
@@ -19,7 +19,7 @@ class <%= prefixed_controller_class_name %>Controller < ApplicationController
19
19
  @<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
20
20
 
21
21
  if @<%= orm_instance.save %>
22
- render json: <%= class_name %>Serializer.new(<%= "@#{singular_table_name}" %>), status: :created, location: [:<%= prefix %>, <%= "@#{singular_table_name}" %>]
22
+ render json: <%= class_name %>Serializer.new(<%= "@#{singular_table_name}" %>), status: :created, location: [:api, :<%= prefix %>, <%= "@#{singular_table_name}" %>]
23
23
  else
24
24
  render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity
25
25
  end
@@ -85,7 +85,7 @@ RSpec.describe <%= prefixed_controller_class_name %>Controller, type: :controlle
85
85
  <% end -%>
86
86
  expect(response).to have_http_status(:created)
87
87
  expect(response.content_type).to eq('application/json')
88
- expect(response.location).to eq(<%= prefix %>_<%= file_name %>_url(<%= class_name %>.last))
88
+ expect(response.location).to eq(api_<%= prefix %>_<%= file_name %>_url(<%= class_name %>.last))
89
89
  end
90
90
  end
91
91
  context "with invalid params" do
@@ -154,4 +154,4 @@ RSpec.describe <%= prefixed_controller_class_name %>Controller, type: :controlle
154
154
  end
155
155
  end
156
156
  end
157
- <% end -%>
157
+ <% end -%>
@@ -11,34 +11,34 @@ class <%= prefixed_controller_class_name %>ControllerTest < ActionDispatch::Inte
11
11
  end
12
12
 
13
13
  test "should get index" do
14
- get <%= [prefix, index_helper].join('_') %>_url, as: :json
14
+ get <%= ['api', prefix, index_helper].join('_') %>_url, as: :json
15
15
  assert_response :success
16
16
  end
17
17
 
18
18
  test "should create <%= singular_table_name %>" do
19
19
  assert_difference('<%= class_name %>.count') do
20
- post <%= [prefix, index_helper].join('_') %>_url, params: { <%= "#{singular_table_name}: { #{attributes_string} }" %> }, as: :json
20
+ post <%= ['api', prefix, index_helper].join('_') %>_url, params: { <%= "#{singular_table_name}: { #{attributes_string} }" %> }, as: :json
21
21
  end
22
22
 
23
23
  assert_response 201
24
24
  end
25
25
 
26
26
  test "should show <%= singular_table_name %>" do
27
- get <%= [prefix, show_helper].join('_') %>, as: :json
27
+ get <%= ['api', prefix, show_helper].join('_') %>, as: :json
28
28
  assert_response :success
29
29
  end
30
30
 
31
31
  test "should update <%= singular_table_name %>" do
32
- patch <%= [prefix, show_helper].join('_') %>, params: { <%= "#{singular_table_name}: { #{attributes_string} }" %> }, as: :json
32
+ patch <%= ['api', prefix, show_helper].join('_') %>, params: { <%= "#{singular_table_name}: { #{attributes_string} }" %> }, as: :json
33
33
  assert_response 200
34
34
  end
35
35
 
36
36
  test "should destroy <%= singular_table_name %>" do
37
37
  assert_difference('<%= class_name %>.count', -1) do
38
- delete <%= [prefix, show_helper].join('_') %>, as: :json
38
+ delete <%= ['api', prefix, show_helper].join('_') %>, as: :json
39
39
  end
40
40
 
41
41
  assert_response 204
42
42
  end
43
43
  end
44
- <% end -%>
44
+ <% end -%>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Atkinson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-20 00:00:00.000000000 Z
11
+ date: 2018-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler