gearhead 0.3.0 → 0.4.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 514fd5af0293e62efdbb83d18eda79c72412f06ab60ab96adcb19d48bdc3fd82
|
4
|
+
data.tar.gz: 4350999d8e8194ca68726b5893a5c32d8d7de43aeb14fba93b3e7f14a2806666
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6587358c938a6c2538adff9f53b88055cf7cfa79b128d0c4268712a3ddff4953f35b0b163437c543585054dd97a3cdffd09185ed92c96dc1d4b83ee873b7dcc
|
7
|
+
data.tar.gz: ecf7fc77d8c0b6d23e2a26e602666ebdffa22bfceeebc9570691ea2b1414eaa96ff58986036b5fb0a09210106554b30b4f7c26693751cf2d12dc5acc584a449c
|
data/lib/gearhead/router.rb
CHANGED
@@ -7,9 +7,16 @@ module Gearhead
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def apply
|
10
|
+
if Gearhead.config.automount.enabled?
|
11
|
+
define_automount_route
|
12
|
+
end
|
10
13
|
define_gear_routes
|
11
14
|
end
|
12
15
|
|
16
|
+
def define_automount_route
|
17
|
+
@router.resources :gears, path: [::Gearhead.config.endpoint, ":resource_class"].join("/"), controller: "gearhead/gears", param: :resource_id
|
18
|
+
end
|
19
|
+
|
13
20
|
def define_gear_routes
|
14
21
|
::Gearhead.registry.all.each do |thing|
|
15
22
|
@router.resources thing.resource.model_name.route_key, path: [::Gearhead.config.endpoint, thing.path].join("/"), controller: "gearhead/gears", param: :resource_id, defaults: { resource_class: thing.resource.model_name.route_key } do
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Gearhead
|
2
|
+
module Utils
|
3
|
+
module_function
|
4
|
+
|
5
|
+
def check_endpoint!(endpoint)
|
6
|
+
return if endpoint.start_with?("/") && !endpoint.end_with?("/")
|
7
|
+
unless endpoint.start_with?("/")
|
8
|
+
raise ArgumentError, "Endpoint must start with /. Endpoint is: `#{endpoint}'"
|
9
|
+
end
|
10
|
+
if endpoint.end_with?("/")
|
11
|
+
raise ArgumentError, "Endpoint must not end with /. Endpoint is: `#{endpoint}'"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/gearhead/version.rb
CHANGED
@@ -5,12 +5,19 @@ module Gearhead
|
|
5
5
|
|
6
6
|
source_root File.expand_path("templates", __dir__)
|
7
7
|
|
8
|
+
class_option :automount, default: false, desc: "Enable automounting (default is false)"
|
9
|
+
class_option :endpoint, default: "/gearhead", desc: "The route to mount Gearhead on (default is /gearhead)"
|
10
|
+
|
8
11
|
def generate_config_file
|
12
|
+
@automount = options[:automount]
|
13
|
+
@endpoint = options[:endpoint]
|
14
|
+
Gearhead::Utils.check_endpoint!(@endpoint)
|
15
|
+
|
9
16
|
template "gearhead.rb.erb", "config/initializers/gearhead.rb"
|
10
17
|
end
|
11
18
|
|
12
19
|
def install_routes
|
13
|
-
inject_into_file "config/routes.rb", "\n
|
20
|
+
inject_into_file "config/routes.rb", "\n Gearhead.routes(self)", after: /Rails.application.routes.draw do/
|
14
21
|
end
|
15
22
|
end
|
16
23
|
end
|
@@ -3,7 +3,7 @@ Gearhead.setup do |config|
|
|
3
3
|
#
|
4
4
|
# The endpoint in which to mount gearhead on.
|
5
5
|
# Default is "/gearhead" — must start with a slash, and have no trailing slash
|
6
|
-
|
6
|
+
<% if [nil, ""].include?(@endpoint) %># config.endpoint = "/api/v314"<%else %>config.endpoint = "<%= @endpoint %>"<% end %>
|
7
7
|
#
|
8
8
|
# The default actions a Gear can respond to
|
9
9
|
# Default is [:index, :create, :show, :update, :destroy]
|
@@ -27,7 +27,7 @@ Gearhead.setup do |config|
|
|
27
27
|
# == Automount
|
28
28
|
#
|
29
29
|
# Change this to true if you want to automatically mount all your resources.
|
30
|
-
|
30
|
+
<% if [nil, "", false].include?(@automount) %># config.automount.enabled = false<%else %>config.automount.enabled = true<% end %>
|
31
31
|
#
|
32
32
|
# Automatically mount most of your resources
|
33
33
|
# config.automount.resources = ['User', 'Post', 'Comment']
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gearhead
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh
|
@@ -235,6 +235,7 @@ files:
|
|
235
235
|
- lib/gearhead/serializers/invalid_request_serializer.rb
|
236
236
|
- lib/gearhead/serializers/invalid_resource_serializer.rb
|
237
237
|
- lib/gearhead/serializers/lookup.rb
|
238
|
+
- lib/gearhead/utils.rb
|
238
239
|
- lib/gearhead/version.rb
|
239
240
|
- lib/generators/gearhead/gear/gear_generator.rb
|
240
241
|
- lib/generators/gearhead/gear/templates/gear.rb.erb
|