shaf 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/lib/shaf/command/base.rb +51 -0
- data/lib/shaf/command/templates/Gemfile.erb +0 -1
- data/lib/shaf/command.rb +1 -47
- data/lib/shaf/extensions/resource_uris.rb +113 -151
- data/lib/shaf/generator/base.rb +61 -0
- data/lib/shaf/generator/migration/base.rb +133 -0
- data/lib/shaf/generator/migration/create_table.rb +4 -4
- data/lib/shaf/generator/migration.rb +1 -111
- data/lib/shaf/generator/serializer.rb +3 -51
- data/lib/shaf/generator/templates/api/controller.rb.erb +2 -0
- data/lib/shaf/generator/templates/api/policy.rb.erb +3 -2
- data/lib/shaf/generator/templates/api/serializer.rb.erb +2 -6
- data/lib/shaf/generator/templates/spec/integration_spec.rb.erb +30 -30
- data/lib/shaf/generator.rb +1 -57
- data/lib/shaf/helpers/cache_control.rb +21 -0
- data/lib/shaf/helpers.rb +4 -2
- data/lib/shaf/rake/db.rb +1 -1
- data/lib/shaf/upgrade/manifest.rb +29 -8
- data/lib/shaf/upgrade/package.rb +51 -27
- data/lib/shaf/version.rb +1 -1
- data/templates/api/controllers/docs_controller.rb +2 -0
- data/templates/api/controllers/root_controller.rb +2 -3
- data/templates/api/policies/base_policy.rb +3 -0
- data/templates/api/serializers/base_serializer.rb +4 -0
- data/templates/api/serializers/error_serializer.rb +3 -2
- data/templates/api/serializers/form_serializer.rb +2 -2
- data/templates/api/serializers/root_serializer.rb +3 -3
- data/templates/config/initializers/db_migrations.rb +24 -11
- data/templates/config/initializers/hal_presenter.rb +0 -5
- data/templates/config/settings.yml +8 -3
- data/upgrades/0.5.0.tar.gz +0 -0
- data.tar.gz.sig +0 -0
- metadata +69 -6
- metadata.gz.sig +0 -0
@@ -4,10 +4,12 @@ class DocsController < BaseController
|
|
4
4
|
register_uri :documentation, '/doc/:resource'
|
5
5
|
|
6
6
|
get doc_curie_uri_template do
|
7
|
+
cache_control(:private, http_cache_max_age: :long)
|
7
8
|
doc.link(params[:rel])
|
8
9
|
end
|
9
10
|
|
10
11
|
get documentation_uri_template do
|
12
|
+
cache_control(:private, http_cache_max_age: :long)
|
11
13
|
doc.to_s
|
12
14
|
end
|
13
15
|
|
@@ -1,10 +1,9 @@
|
|
1
1
|
class RootController < BaseController
|
2
2
|
|
3
|
-
HTTP_CACHE_MAX_AGE = 86400 # 60 * 60 * 24 = 1 day
|
4
3
|
register_uri :root, '/'
|
5
4
|
|
6
|
-
get root_uri do
|
7
|
-
cache_control(:private,
|
5
|
+
get :root_uri do
|
6
|
+
cache_control(:private, http_cache_max_age: :long)
|
8
7
|
respond_with nil, serializer: RootSerializer
|
9
8
|
end
|
10
9
|
end
|
@@ -2,17 +2,30 @@ require 'sequel'
|
|
2
2
|
require 'config/database'
|
3
3
|
|
4
4
|
Sequel.extension :migration
|
5
|
-
|
6
|
-
return if Sequel::Migrator.is_current?(DB, MIGRATIONS_DIR)
|
5
|
+
Dir[File.join(MIGRATIONS_DIR, "*")]
|
7
6
|
|
8
|
-
|
7
|
+
def is_current?
|
8
|
+
return true unless Dir[File.join(MIGRATIONS_DIR, "*")].any?
|
9
|
+
Sequel::Migrator.is_current?(DB, MIGRATIONS_DIR)
|
10
|
+
end
|
11
|
+
|
12
|
+
def environment
|
13
|
+
ENV['RACK_ENV']
|
14
|
+
end
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
def init
|
17
|
+
return if is_current?
|
18
|
+
|
19
|
+
if environment == 'test'
|
20
|
+
$logger.info "Running migrations in 'test' environment.."
|
21
|
+
Sequel::Migrator.run(DB, "#{APP_ROOT}/db/migrations")
|
22
|
+
else
|
23
|
+
msg = "Database for environment '#{environment}' is not " \
|
24
|
+
"updated to the latest migration"
|
25
|
+
STDERR.puts msg
|
26
|
+
$logger&.warn msg
|
27
|
+
end
|
18
28
|
end
|
29
|
+
|
30
|
+
init
|
31
|
+
|
@@ -1,6 +1,5 @@
|
|
1
1
|
---
|
2
2
|
default: &default
|
3
|
-
port: 3000
|
4
3
|
public_folder: frontend/assets
|
5
4
|
views_folder: frontend/views
|
6
5
|
documents_dir: doc/api
|
@@ -8,14 +7,20 @@ default: &default
|
|
8
7
|
fixtures_dir: spec/fixtures
|
9
8
|
paginate_per_page: 25
|
10
9
|
http_cache: on
|
10
|
+
http_cache_max_age_long: 86400 # 60 * 60 * 24 = 1 day
|
11
|
+
http_cache_max_age_short: 3600 # 60 * 60 = 1 hour
|
12
|
+
hostname: localhost
|
13
|
+
protocol: http
|
14
|
+
port: 3000
|
11
15
|
|
12
16
|
production:
|
13
17
|
<<: *default
|
14
|
-
port:
|
18
|
+
port: 443
|
19
|
+
protocol: https
|
15
20
|
|
16
21
|
development:
|
17
22
|
<<: *default
|
18
23
|
|
19
24
|
test:
|
20
25
|
<<: *default
|
21
|
-
port:
|
26
|
+
port: 3030
|
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shaf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sammy Henningsson
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
ZMhjYR7sRczGJx+GxGU2EaR0bjRsPVlC4ywtFxoOfRG3WaJcpWGEoAoMJX6Z0bRv
|
31
31
|
M40=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2018-
|
33
|
+
date: 2018-08-25 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: rake
|
@@ -39,19 +39,75 @@ dependencies:
|
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '12.0'
|
42
|
+
type: :development
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '12.0'
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: sinatra
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '2.0'
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '2.0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: sequel
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '5'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '5'
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: minitest
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '5'
|
42
84
|
- - ">="
|
43
85
|
- !ruby/object:Gem::Version
|
44
|
-
version: '10
|
86
|
+
version: '5.10'
|
45
87
|
type: :development
|
46
88
|
prerelease: false
|
47
89
|
version_requirements: !ruby/object:Gem::Requirement
|
48
90
|
requirements:
|
49
91
|
- - "~>"
|
50
92
|
- !ruby/object:Gem::Version
|
51
|
-
version: '
|
93
|
+
version: '5'
|
52
94
|
- - ">="
|
53
95
|
- !ruby/object:Gem::Version
|
54
|
-
version: '10
|
96
|
+
version: '5.10'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: sqlite3
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.3'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.3'
|
55
111
|
description: A framework for building hypermedia driven APIs with sinatra and sequel.
|
56
112
|
email: sammy.henningsson@gmail.com
|
57
113
|
executables:
|
@@ -65,6 +121,7 @@ files:
|
|
65
121
|
- lib/shaf/api_doc/document.rb
|
66
122
|
- lib/shaf/app.rb
|
67
123
|
- lib/shaf/command.rb
|
124
|
+
- lib/shaf/command/base.rb
|
68
125
|
- lib/shaf/command/console.rb
|
69
126
|
- lib/shaf/command/generate.rb
|
70
127
|
- lib/shaf/command/new.rb
|
@@ -81,10 +138,12 @@ files:
|
|
81
138
|
- lib/shaf/extensions/symbolic_routes.rb
|
82
139
|
- lib/shaf/formable.rb
|
83
140
|
- lib/shaf/generator.rb
|
141
|
+
- lib/shaf/generator/base.rb
|
84
142
|
- lib/shaf/generator/controller.rb
|
85
143
|
- lib/shaf/generator/migration.rb
|
86
144
|
- lib/shaf/generator/migration/add_column.rb
|
87
145
|
- lib/shaf/generator/migration/add_index.rb
|
146
|
+
- lib/shaf/generator/migration/base.rb
|
88
147
|
- lib/shaf/generator/migration/create_table.rb
|
89
148
|
- lib/shaf/generator/migration/drop_column.rb
|
90
149
|
- lib/shaf/generator/migration/empty.rb
|
@@ -101,6 +160,7 @@ files:
|
|
101
160
|
- lib/shaf/generator/templates/spec/model.rb.erb
|
102
161
|
- lib/shaf/generator/templates/spec/serializer_spec.rb.erb
|
103
162
|
- lib/shaf/helpers.rb
|
163
|
+
- lib/shaf/helpers/cache_control.rb
|
104
164
|
- lib/shaf/helpers/json_html.rb
|
105
165
|
- lib/shaf/helpers/paginate.rb
|
106
166
|
- lib/shaf/helpers/payload.rb
|
@@ -135,6 +195,8 @@ files:
|
|
135
195
|
- templates/api/controllers/base_controller.rb
|
136
196
|
- templates/api/controllers/docs_controller.rb
|
137
197
|
- templates/api/controllers/root_controller.rb
|
198
|
+
- templates/api/policies/base_policy.rb
|
199
|
+
- templates/api/serializers/base_serializer.rb
|
138
200
|
- templates/api/serializers/error_serializer.rb
|
139
201
|
- templates/api/serializers/form_serializer.rb
|
140
202
|
- templates/api/serializers/root_serializer.rb
|
@@ -159,6 +221,7 @@ files:
|
|
159
221
|
- templates/spec/serializers/root_serializer_spec.rb
|
160
222
|
- templates/spec/spec_helper.rb
|
161
223
|
- upgrades/0.4.0.tar.gz
|
224
|
+
- upgrades/0.5.0.tar.gz
|
162
225
|
homepage: https://github.com/sammyhenningsson/shaf
|
163
226
|
licenses:
|
164
227
|
- MIT
|
@@ -180,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
243
|
version: '0'
|
181
244
|
requirements: []
|
182
245
|
rubyforge_project:
|
183
|
-
rubygems_version: 2.6
|
246
|
+
rubygems_version: 2.7.6
|
184
247
|
signing_key:
|
185
248
|
specification_version: 4
|
186
249
|
summary: Sinatra Hypermedia Api Framework
|
metadata.gz.sig
CHANGED
Binary file
|