ditty 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +14 -9
- data/ditty.gemspec +1 -1
- data/lib/ditty/controllers/application.rb +34 -11
- data/lib/ditty/controllers/component.rb +0 -15
- data/lib/ditty/helpers/authentication.rb +3 -0
- data/lib/ditty/helpers/views.rb +10 -6
- data/lib/ditty/middleware/error_catchall.rb +5 -1
- data/lib/ditty/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2fea055fdddd9b21951527617015b2926b064191dfda753fd930037738122c50
|
4
|
+
data.tar.gz: b8d1cc9f9430ff39d3f345719a0988f51bc03f4a7f718fabe78a69d314e5762a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eafbcf7aaadabc7e9458f403cf2252b3311dc9a716f08884c1651055426864e796866e60f7c3986be4405cc83d3d0552d49fca43e2764e516066884a56e7c4ea
|
7
|
+
data.tar.gz: f2f3b62750d7711bdd59ee7e0df4630ec89992cda013d5e5e96736aa541a5a2cd55ff096de65b774bef4ab74c90e0983a7a3826d30a498e3a3a474bd1cdfc1cf
|
data/.travis.yml
CHANGED
@@ -6,19 +6,24 @@ rvm:
|
|
6
6
|
- 2.2.6
|
7
7
|
gemfile: Gemfile.ci
|
8
8
|
env:
|
9
|
-
|
9
|
+
global:
|
10
|
+
- CC_TEST_REPORTER_ID=289860573c6284a8e277de86848caba84d840be49e35f3601bcd672ab40d1e35
|
11
|
+
matrix:
|
12
|
+
- DATABASE_URL="sqlite::memory:" RACK_ENV=test
|
10
13
|
before_install:
|
11
|
-
- gem install bundler -v 1.12.5
|
14
|
+
- gem install bundler -v 1.12.5
|
12
15
|
before_script:
|
13
|
-
-
|
16
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
17
|
+
- chmod +x ./cc-test-reporter
|
18
|
+
- ./cc-test-reporter before-build
|
19
|
+
- bundle exec rake ditty:prep
|
14
20
|
script:
|
15
|
-
- bundle exec rake
|
16
|
-
- bundle exec rubocop --fail-level W lib views
|
17
|
-
|
18
|
-
|
19
|
-
repo_token: 289860573c6284a8e277de86848caba84d840be49e35f3601bcd672ab40d1e35
|
21
|
+
- bundle exec rake
|
22
|
+
- bundle exec rubocop --fail-level W lib views
|
23
|
+
after_script:
|
24
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
20
25
|
after_success:
|
21
|
-
- bundle exec codeclimate-test-reporter
|
26
|
+
- bundle exec codeclimate-test-reporter
|
22
27
|
deploy:
|
23
28
|
provider: rubygems
|
24
29
|
api_key:
|
data/ditty.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_development_dependency 'bundler', '~> 1.12'
|
24
24
|
spec.add_development_dependency 'database_cleaner'
|
25
|
-
spec.add_development_dependency '
|
25
|
+
spec.add_development_dependency 'factory_bot'
|
26
26
|
spec.add_development_dependency 'rack-test'
|
27
27
|
spec.add_development_dependency 'racksh'
|
28
28
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
@@ -52,47 +52,70 @@ module Ditty
|
|
52
52
|
|
53
53
|
not_found do
|
54
54
|
respond_to do |format|
|
55
|
+
status 404
|
55
56
|
format.html do
|
56
57
|
haml :'404', locals: { title: '4 oh 4' }
|
57
58
|
end
|
58
59
|
format.json do
|
59
|
-
|
60
|
+
json code: 404, errors: ['Not Found']
|
60
61
|
end
|
61
62
|
end
|
62
63
|
end
|
63
64
|
|
64
|
-
error do
|
65
|
-
error = env['sinatra.error']
|
66
|
-
broadcast(:application_error, error)
|
65
|
+
error Helpers::NotAuthenticated, ::Pundit::NotAuthorizedError do
|
67
66
|
respond_to do |format|
|
67
|
+
status 401
|
68
68
|
format.html do
|
69
|
-
|
69
|
+
flash[:warning] = 'Please log in first.'
|
70
|
+
redirect "#{settings.map_path}/auth/identity"
|
70
71
|
end
|
71
72
|
format.json do
|
72
|
-
|
73
|
+
json code: 401, errors: ['Not Authenticated']
|
73
74
|
end
|
74
75
|
end
|
75
76
|
end
|
76
77
|
|
77
|
-
error
|
78
|
+
error Sequel::ValidationFailed do
|
78
79
|
respond_to do |format|
|
80
|
+
entity = env['sinatra.error'].model
|
81
|
+
errors = env['sinatra.error'].errors
|
82
|
+
status 400
|
79
83
|
format.html do
|
80
|
-
|
81
|
-
|
84
|
+
action = entity.id ? :edit : :new
|
85
|
+
haml :"#{view_location}/#{action}", locals: { entity: entity, title: heading(action) }
|
82
86
|
end
|
83
87
|
format.json do
|
84
|
-
|
88
|
+
json code: 400, errors: errors
|
85
89
|
end
|
86
90
|
end
|
87
91
|
end
|
88
92
|
|
89
93
|
error ::Sequel::ForeignKeyConstraintViolation do
|
94
|
+
error = env['sinatra.error']
|
95
|
+
broadcast(:application_error, error)
|
96
|
+
::Ditty::Services::Logger.instance.error error
|
97
|
+
respond_to do |format|
|
98
|
+
status 400
|
99
|
+
format.html do
|
100
|
+
haml :error, locals: { title: 'Something went wrong', error: error }
|
101
|
+
end
|
102
|
+
format.json do
|
103
|
+
json code: 400, errors: ['Invalid Relation Specified']
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
error do
|
109
|
+
error = env['sinatra.error']
|
110
|
+
broadcast(:application_error, error)
|
111
|
+
::Ditty::Services::Logger.instance.error error
|
90
112
|
respond_to do |format|
|
113
|
+
status 500
|
91
114
|
format.html do
|
92
115
|
haml :error, locals: { title: 'Something went wrong', error: error }
|
93
116
|
end
|
94
117
|
format.json do
|
95
|
-
|
118
|
+
json code: 500, errors: ['Something went wrong']
|
96
119
|
end
|
97
120
|
end
|
98
121
|
end
|
@@ -89,20 +89,5 @@ module Ditty
|
|
89
89
|
log_action("#{dehumanized}_delete".to_sym) if settings.track_actions
|
90
90
|
delete_response(entity)
|
91
91
|
end
|
92
|
-
|
93
|
-
error Sequel::ValidationFailed do
|
94
|
-
respond_to do |format|
|
95
|
-
entity = env['sinatra.error'].model
|
96
|
-
errors = env['sinatra.error'].errors
|
97
|
-
status 400
|
98
|
-
format.html do
|
99
|
-
action = entity.id ? :edit : :new
|
100
|
-
haml :"#{view_location}/#{action}", locals: { entity: entity, title: heading(action) }
|
101
|
-
end
|
102
|
-
format.json do
|
103
|
-
json [400, { errors: errors }]
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
92
|
end
|
108
93
|
end
|
data/lib/ditty/helpers/views.rb
CHANGED
@@ -46,15 +46,19 @@ module Ditty
|
|
46
46
|
haml :'partials/delete_form', locals: locals
|
47
47
|
end
|
48
48
|
|
49
|
+
def query_string(add = {})
|
50
|
+
qs = params.clone.merge(add)
|
51
|
+
qs.delete('captures')
|
52
|
+
Rack::Utils.build_query qs
|
53
|
+
end
|
54
|
+
|
49
55
|
def pagination(list, base_path, qp = {})
|
50
56
|
return unless list.respond_to? :pagination_record_count
|
51
|
-
qs = params.clone.merge(qp)
|
52
|
-
qs.delete('captures')
|
53
57
|
locals = {
|
54
|
-
first_link: "#{base_path}
|
55
|
-
next_link: list.last_page? ? '#' : "#{base_path}
|
56
|
-
prev_link: list.first_page? ? '#' : "#{base_path}
|
57
|
-
last_link: "#{base_path}
|
58
|
+
first_link: "#{base_path}?" + query_string(qp.merge(page: 1)),
|
59
|
+
next_link: list.last_page? ? '#' : "#{base_path}?" + query_string(qp.merge(page: list.next_page)),
|
60
|
+
prev_link: list.first_page? ? '#' : "#{base_path}?" + query_string(qp.merge(page: list.prev_page)),
|
61
|
+
last_link: "#{base_path}?" + query_string(qp.merge(page: list.page_count)),
|
58
62
|
base_path: base_path,
|
59
63
|
list: list
|
60
64
|
}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'ditty/services/logger'
|
2
|
+
|
1
3
|
module Ditty
|
2
4
|
module Middleware
|
3
5
|
class ErrorCatchall
|
@@ -11,7 +13,9 @@ module Ditty
|
|
11
13
|
@env = env
|
12
14
|
begin
|
13
15
|
@app.call env
|
14
|
-
rescue StandardError
|
16
|
+
rescue StandardError => e
|
17
|
+
::Ditty::Services::Logger.instance.error "Ditty Catchall: #{e.class}"
|
18
|
+
::Ditty::Services::Logger.instance.error e
|
15
19
|
[500, {}, ['Unknown Error']]
|
16
20
|
end
|
17
21
|
end
|
data/lib/ditty/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ditty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jurgens du Toit
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: factory_bot
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -430,7 +430,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
430
430
|
version: '0'
|
431
431
|
requirements: []
|
432
432
|
rubyforge_project:
|
433
|
-
rubygems_version: 2.
|
433
|
+
rubygems_version: 2.7.4
|
434
434
|
signing_key:
|
435
435
|
specification_version: 4
|
436
436
|
summary: Sinatra Based Application Framework
|