railspp 0.0.10 → 0.1.2
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/README.md +1 -5
- data/lib/commands/make_test.rb +23 -0
- data/lib/commands/model.rb +1 -1
- data/lib/help/make_test.rb +12 -4
- data/lib/railspp.rb +6 -6
- data/lib/templates/global_controller.txt +0 -2
- data/lib/templates/mini_test_controller.txt +84 -0
- data/lib/templates/rack_cors_initializer.txt +7 -6
- data/lib/utils/strings.rb +1 -1
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a53edb8e7f6d285127a63c28572ac7b90b8067164c823a3737bc9b9fb4629cf6
|
4
|
+
data.tar.gz: 767b6dc11d386579aaa57ea41ea17a14144e5330c884a1013a67fbb3a78b6a77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 529248e00025c528f567ef3cce15f034f218991ccb150c59ddca75032d65595685c1c41ebd4aea7082788b4741121a0e44c3ad509ae22ba0f03860e993115a4f
|
7
|
+
data.tar.gz: '05586d03c4feeea8aa7962e65bd8a377be1ed6fe9064b8dfc43ab442e7a60840a07290b6f9c277f175e81b9c309044a299e6037e15b3fab0c502ffe44d8061f0'
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ gem isntall railspp
|
|
25
25
|
|
26
26
|
Your command CLI command bin path is `railspp`
|
27
27
|
|
28
|
-
|
28
|
+

|
29
29
|
|
30
30
|
## Getting Started
|
31
31
|
|
@@ -144,22 +144,18 @@ Test cover:
|
|
144
144
|
Index:
|
145
145
|
|
146
146
|
- status_code = 200
|
147
|
-
- json_format = { data: (array), count: (integer) }
|
148
147
|
|
149
148
|
Show:
|
150
149
|
|
151
150
|
- status_code = 200
|
152
|
-
- json_format = { id: (integer) }
|
153
151
|
|
154
152
|
Create:
|
155
153
|
|
156
154
|
- status_code = 201
|
157
|
-
- json_format = { id: (integer) }
|
158
155
|
|
159
156
|
Update:
|
160
157
|
|
161
158
|
- status_code = 200
|
162
|
-
- json_format = { id: (integer) }
|
163
159
|
|
164
160
|
Destroy:
|
165
161
|
|
data/lib/commands/make_test.rb
CHANGED
@@ -5,7 +5,30 @@ class MakeTestCommand < MoreUtils
|
|
5
5
|
class << self
|
6
6
|
|
7
7
|
def run *args
|
8
|
+
lookup = flag_lookup(args)
|
9
|
+
arguments = get_args(args)
|
8
10
|
|
11
|
+
namespace_regex = '{{ NAMESPACE }}'
|
12
|
+
model_regex = '{{ MODEL }}'
|
13
|
+
routes_regex = '{{ ROUTE }}'
|
14
|
+
namespace_snakecase_regex = '{{ NAMESPACE_SNAKECASE }}'
|
15
|
+
|
16
|
+
# api_route = arguments[0]
|
17
|
+
api_route = '/api/v1/user'
|
18
|
+
namespace_array = api_route.split('/')
|
19
|
+
model = namespace_array.pop
|
20
|
+
namespace_array = namespace_array.reject { |e| e == '' }
|
21
|
+
namespace = namespace_array.map { |e| e.downcase.capitalize }.join('::')
|
22
|
+
namespace_snake = (namespace_array.join('_') + '_' + model).underscore
|
23
|
+
|
24
|
+
test_template = get_file_str("#{this_dir}/../templates/mini_test_controller.txt")
|
25
|
+
test_template = test_template.gsub(namespace_regex, namespace)
|
26
|
+
test_template = test_template.gsub(model_regex, model)
|
27
|
+
test_template = test_template.gsub(namespace_snakecase_regex, namespace_snake)
|
28
|
+
test_template = test_template.gsub(routes_regex, api_route)
|
29
|
+
write_file("#{root}/test/controllers#{api_route}_controller_test.rb", test_template)
|
30
|
+
|
31
|
+
puts "Genreated your unit for api route: #{api_route}"
|
9
32
|
end
|
10
33
|
|
11
34
|
end
|
data/lib/commands/model.rb
CHANGED
@@ -19,8 +19,8 @@ class ModelCommand < MoreUtils
|
|
19
19
|
system("rails generate model #{model_name} #{others.join(' ')}")
|
20
20
|
|
21
21
|
api_version_path = lookup[:"api-version"] || 'api/v1'
|
22
|
-
system("mkdir -p #{root}/app/controllers/#{api_version_path}")
|
23
22
|
|
23
|
+
system("mkdir -p #{root}/app/controllers/#{api_version_path}")
|
24
24
|
controller_prefix = api_version_path.split('/').map { |e| e.downcase.capitalize }.join('::')
|
25
25
|
controller_name = controller_prefix + '::' + model_name
|
26
26
|
|
data/lib/help/make_test.rb
CHANGED
@@ -1,11 +1,19 @@
|
|
1
|
-
|
1
|
+
require_relative '../utils/strings.rb'
|
2
|
+
|
3
|
+
|
4
|
+
class MakeTestHelpCommand < MoreUtils
|
2
5
|
class << self
|
3
6
|
|
4
7
|
def run *args
|
5
|
-
puts "No Options available
|
8
|
+
puts "No Options available
|
9
|
+
|
10
|
+
With your generated your mini test
|
11
|
+
|
12
|
+
Route Path Example:
|
13
|
+
'/api/v1/user'
|
6
14
|
|
7
|
-
Run to generate
|
8
|
-
'railspp make_test (
|
15
|
+
Run to generate a mini test for your controller:
|
16
|
+
'railspp make_test (route-path)'
|
9
17
|
"
|
10
18
|
end
|
11
19
|
|
data/lib/railspp.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require_relative './commands/initialize.rb'
|
2
|
-
require_relative './commands/make_test.rb'
|
3
2
|
require_relative './commands/model.rb'
|
3
|
+
require_relative './commands/make_test.rb'
|
4
4
|
require_relative './help/documentation.rb'
|
5
5
|
require_relative './help/initialize.rb'
|
6
|
-
require_relative './help/make_test.rb'
|
7
6
|
require_relative './help/model.rb'
|
7
|
+
require_relative './help/make_test.rb'
|
8
8
|
require_relative './utils/strings.rb'
|
9
9
|
|
10
10
|
|
@@ -43,8 +43,8 @@ class RailsPlusPlus < MoreUtils
|
|
43
43
|
initialize: InitializeCommand,
|
44
44
|
m: ModelCommand,
|
45
45
|
model: ModelCommand,
|
46
|
-
make_test: MakeTestCommand,
|
47
46
|
mt: MakeTestCommand,
|
47
|
+
make_test: MakeTestCommand,
|
48
48
|
}
|
49
49
|
end
|
50
50
|
|
@@ -55,8 +55,8 @@ class RailsPlusPlus < MoreUtils
|
|
55
55
|
initialize: InitializeHelpCommand,
|
56
56
|
m: ModelHelpCommand,
|
57
57
|
model: ModelHelpCommand,
|
58
|
-
make_test: MakeTestHelpCommand,
|
59
58
|
mt: MakeTestHelpCommand,
|
59
|
+
make_test: MakeTestHelpCommand,
|
60
60
|
}
|
61
61
|
end
|
62
62
|
|
@@ -67,8 +67,8 @@ class RailsPlusPlus < MoreUtils
|
|
67
67
|
'- initialize => Initialize your project',
|
68
68
|
'- m => Generate your CRUD model, controller, and migration',
|
69
69
|
'- model => Generate your CRUD model, controller, and migration',
|
70
|
-
'-
|
71
|
-
'-
|
70
|
+
'- mt => Generate a unit test in minitest',
|
71
|
+
'- make_test => Generate a unit test in minitest',
|
72
72
|
]
|
73
73
|
end
|
74
74
|
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'faker'
|
3
|
+
|
4
|
+
class {{ NAMESPACE }}ControllerTest < ActionDispatch::IntegrationTest
|
5
|
+
|
6
|
+
def model
|
7
|
+
"{{ MODEL }}".singularize.camelize.constantize
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_columns
|
11
|
+
model.columns_hash.map { |k, v| { key: k.to_sym, data_type: v.type } }
|
12
|
+
end
|
13
|
+
|
14
|
+
def data_types val
|
15
|
+
lookup = {
|
16
|
+
string: Faker::Lorem.sentence.to_s,
|
17
|
+
datetime: DateTime.now,
|
18
|
+
integer: 1,
|
19
|
+
boolean: false,
|
20
|
+
text: Faker::Lorem.paragraph.to_s,
|
21
|
+
}
|
22
|
+
lookup[val] || nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def black_list_keys
|
26
|
+
{
|
27
|
+
id: true,
|
28
|
+
created_at: true,
|
29
|
+
updated_at: true,
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
def set_data_values
|
34
|
+
get_columns.each_with_object({}) do |e, acc|
|
35
|
+
key = e[:key]
|
36
|
+
val = e[:data_type]
|
37
|
+
if special_key_values[key]
|
38
|
+
acc[key] = special_key_values[val]
|
39
|
+
elsif black_list_keys[key]
|
40
|
+
else
|
41
|
+
acc[key] = data_types(val)
|
42
|
+
end
|
43
|
+
acc
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def random_params
|
48
|
+
set_data_values
|
49
|
+
end
|
50
|
+
|
51
|
+
setup do
|
52
|
+
@data = model.create(random_params)
|
53
|
+
end
|
54
|
+
|
55
|
+
test "should create {{ NAMESPACE_SNAKECASE }}" do
|
56
|
+
post '{{ ROUTE }}', params: random_params
|
57
|
+
assert_response :created
|
58
|
+
end
|
59
|
+
|
60
|
+
test "should get index {{ NAMESPACE_SNAKECASE }}" do
|
61
|
+
get '{{ ROUTE }}'
|
62
|
+
assert_response :success
|
63
|
+
end
|
64
|
+
|
65
|
+
test "should show {{ NAMESPACE_SNAKECASE }}" do
|
66
|
+
get "{{ ROUTE }}/#{@data.id}"
|
67
|
+
assert_response :success
|
68
|
+
end
|
69
|
+
|
70
|
+
test "should put update {{ NAMESPACE_SNAKECASE }}" do
|
71
|
+
put "{{ ROUTE }}/#{@data.id}", params: random_params
|
72
|
+
assert_response :success
|
73
|
+
end
|
74
|
+
|
75
|
+
test "should patch update {{ NAMESPACE_SNAKECASE }}" do
|
76
|
+
patch "{{ ROUTE }}/#{@data.id}", params: random_params
|
77
|
+
assert_response :success
|
78
|
+
end
|
79
|
+
|
80
|
+
test "should destroy {{ NAMESPACE_SNAKECASE }}" do
|
81
|
+
delete "{{ ROUTE }}/#{@data.id}"
|
82
|
+
assert_response :no_content
|
83
|
+
end
|
84
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
require 'rack/cors'
|
2
|
+
|
3
|
+
Rails.application.config.middleware.insert_before 0, Rack::Cors do
|
4
|
+
allow do
|
5
|
+
origins '*'
|
6
|
+
resource '*', headers: :any, methods: [:get, :post, :patch, :put, :delete, :options]
|
7
|
+
end
|
7
8
|
end
|
data/lib/utils/strings.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: railspp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Layne Faler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.9'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rack-cors
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
description: Scaffolding your CRUD operations
|
42
56
|
email: laynefaler@gmail.com
|
43
57
|
executables:
|
@@ -63,6 +77,7 @@ files:
|
|
63
77
|
- lib/templates/documentation_controller.txt
|
64
78
|
- lib/templates/exception_handler.txt
|
65
79
|
- lib/templates/global_controller.txt
|
80
|
+
- lib/templates/mini_test_controller.txt
|
66
81
|
- lib/templates/rack_cors_initializer.txt
|
67
82
|
- lib/templates/response.txt
|
68
83
|
- lib/templates/routes_documentation.txt
|