decko 0.6.8 → 0.7.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/decko/config/environments/development.rb +2 -0
- data/lib/decko/generators/decko/decko_generator.rb +1 -0
- data/lib/decko/generators/decko/templates/Gemfile +13 -11
- data/lib/decko/generators/decko/templates/config/initializers/cypress_dev.rb +9 -0
- data/lib/decko/response.rb +13 -4
- data/rails/controllers/card_controller.rb +15 -5
- data/rails/engine-routes.rb +3 -0
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a79047a348903dd9793edf85cb5d9bbdd6f63308
|
4
|
+
data.tar.gz: cac43ee279c0c466df819d890afa02671253de16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65102a60f9db30535b9229e73c57bc47a9ba442453251fda1ea4b6e2c81e961aa884f08a0ec3747653208e4a546df2a73f0361f7afe7ba81ff28b8001893f1d7
|
7
|
+
data.tar.gz: 45a4f71dbc6cd4cfac8ff1b9329c65a28124e3d8eb5a55cc89a4ef8beee46cc821c77918daee03d207c5a16495012375562bd18ae0e150ef7c8fc7ec0faf46c7
|
@@ -24,6 +24,7 @@ Decko.application.class.configure do
|
|
24
24
|
if defined?(RailsDevTweaks)
|
25
25
|
config.dev_tweaks.autoload_rules do
|
26
26
|
skip "/files"
|
27
|
+
skip "/favicon.ico"
|
27
28
|
skip /view\=status/
|
28
29
|
end
|
29
30
|
end
|
@@ -98,6 +99,7 @@ Decko.application.class.configure do
|
|
98
99
|
rescue LoadError
|
99
100
|
end
|
100
101
|
end
|
102
|
+
#config.session_store :cookie_store
|
101
103
|
end
|
102
104
|
|
103
105
|
# Paperclip.options[:command_path] = "/opt/local/bin"
|
@@ -88,6 +88,7 @@ class DeckoGenerator < Rails::Generators::AppBase
|
|
88
88
|
template "boot.rb"
|
89
89
|
template "databases/#{options[:database]}.yml", "database.yml"
|
90
90
|
template "cucumber.yml" if options["core-dev"]
|
91
|
+
template "initializers/cypress_dev.rb" if options["core-dev"]
|
91
92
|
end
|
92
93
|
end
|
93
94
|
|
@@ -28,14 +28,19 @@ gem 'thin'
|
|
28
28
|
|
29
29
|
<% if options['mod-dev'] || options['core-dev'] -%>
|
30
30
|
group :test do
|
31
|
+
gem 'capybara-puma'
|
31
32
|
gem 'rspec'
|
32
33
|
gem 'rspec-rails', '~>3.6.1' # behavior-driven-development suite
|
33
34
|
gem 'spork', '>=0.9'
|
34
35
|
gem 'rubocop'
|
35
36
|
gem 'rubocop-decko'
|
37
|
+
gem 'nokogumbo'
|
36
38
|
end
|
37
39
|
|
38
40
|
group :test, :development do
|
41
|
+
gem 'colorize'
|
42
|
+
gem 'cypress-on-rails', '~> 1.2'
|
43
|
+
gem 'delayed_job_active_record', '~> 4.1'
|
39
44
|
gem 'html2haml'
|
40
45
|
gem 'rails-dev-tweaks'
|
41
46
|
# gem 'jasmine'
|
@@ -43,8 +48,9 @@ group :test, :development do
|
|
43
48
|
# gem 'jasmine-jquery-rails'
|
44
49
|
gem 'sprockets' # just so above works
|
45
50
|
gem 'phantomjs', '1.9.7.1' #locked because 1.9.8.0 is breaking
|
46
|
-
|
47
|
-
gem '
|
51
|
+
|
52
|
+
gem 'better_errors'
|
53
|
+
gem 'binding_of_caller'
|
48
54
|
|
49
55
|
<%- if spring_install? %>
|
50
56
|
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
@@ -73,6 +79,7 @@ group :assets do
|
|
73
79
|
end
|
74
80
|
|
75
81
|
group :test do
|
82
|
+
gem 'capybara-select2', :git=>'https://github.com/brunocavalcante/capybara-select2'
|
76
83
|
gem 'fog'
|
77
84
|
gem 'fog-aws'
|
78
85
|
gem 'rails-controller-testing'
|
@@ -89,10 +96,10 @@ group :test do
|
|
89
96
|
end
|
90
97
|
|
91
98
|
# CUKES see features dir
|
92
|
-
gem 'cucumber-rails', '~> 1.
|
93
|
-
gem 'capybara', '~>
|
94
|
-
gem 'selenium-webdriver', '3.
|
95
|
-
gem 'chromedriver-helper', '~>
|
99
|
+
gem 'cucumber-rails', '~> 1.6', :require=>false # feature-driven-development suite
|
100
|
+
gem 'capybara', '~> 3.12'
|
101
|
+
gem 'selenium-webdriver', '3.141.0'
|
102
|
+
gem 'chromedriver-helper', '~> 2.1.0'
|
96
103
|
# gem 'capybara-webkit'
|
97
104
|
gem 'launchy' # lets cucumber launch browser windows
|
98
105
|
|
@@ -109,11 +116,6 @@ group :test do
|
|
109
116
|
end
|
110
117
|
|
111
118
|
gem 'ruby-prof', :group=>:profile # profiling
|
112
|
-
|
113
|
-
group :debug do
|
114
|
-
gem 'better_errors'
|
115
|
-
gem 'binding_of_caller'
|
116
|
-
end
|
117
119
|
<% end %>
|
118
120
|
|
119
121
|
# load gems needed in Gemfiles
|
@@ -0,0 +1,9 @@
|
|
1
|
+
if defined?(CypressDev)
|
2
|
+
CypressDev.configure do |c|
|
3
|
+
c.cypress_folder = File.join Decko.gem_root, "spec", "cypress"
|
4
|
+
# WARNING!! CypressDev can execute arbitrary ruby code
|
5
|
+
# please use with extra caution if enabling on hosted servers or starting your local server on 0.0.0.0
|
6
|
+
c.use_middleware = Rails.env.test? || ENV["CYPRESS_DEV"]
|
7
|
+
c.logger = Rails.logger
|
8
|
+
end
|
9
|
+
end
|
data/lib/decko/response.rb
CHANGED
@@ -53,11 +53,20 @@ module Decko
|
|
53
53
|
|
54
54
|
# (obviously) deprecated
|
55
55
|
def send_deprecated_asset
|
56
|
-
filename = [params[:mark], params[:format]].join(".")
|
57
|
-
|
58
|
-
|
56
|
+
filename = [params[:mark], params[:format]].compact.join(".")
|
57
|
+
send_file asset_file_path(filename), x_sendfile: true
|
58
|
+
end
|
59
|
+
|
60
|
+
def asset_file_path filename
|
59
61
|
path = Decko::Engine.paths["gem-assets"].existent.first
|
60
|
-
|
62
|
+
path = File.join path, filename
|
63
|
+
validate_path filename, path
|
64
|
+
path
|
65
|
+
end
|
66
|
+
|
67
|
+
def validate_path filename, path
|
68
|
+
# for security, block relative paths
|
69
|
+
raise Card::Error::BadAddress if filename.include?("../") || !::File.exist?(path)
|
61
70
|
end
|
62
71
|
|
63
72
|
# TODO: everything below should go in a separate file
|
@@ -116,20 +116,29 @@ class CardController < ActionController::Base
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def render_page format, view
|
119
|
-
view ||=
|
119
|
+
view ||= view_from_params
|
120
120
|
card.act do
|
121
121
|
format.page self, view, Card::Env.slot_opts
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
|
+
def view_from_params
|
126
|
+
params[:view] || params[:v]
|
127
|
+
end
|
128
|
+
|
125
129
|
def handle_exception exception
|
130
|
+
raise exception if debug_exception?(exception)
|
126
131
|
@card ||= Card.new
|
127
|
-
Card::Error.
|
128
|
-
error = Card::Error.cardify_exception exception, card
|
129
|
-
error.report
|
132
|
+
error = Card::Error.report exception, card
|
130
133
|
show error.class.view, error.class.status_code
|
131
134
|
end
|
132
135
|
|
136
|
+
def debug_exception? e
|
137
|
+
!e.is_a?(Card::Error::UserError) &&
|
138
|
+
!e.is_a?(ActiveRecord::RecordInvalid) &&
|
139
|
+
Card[:debugger]&.content =~ /on/ # && !Card::Env.ajax?
|
140
|
+
end
|
141
|
+
|
133
142
|
class << self
|
134
143
|
def rescue_from_class klass
|
135
144
|
rescue_from(klass) { |exception| handle_exception exception }
|
@@ -141,5 +150,6 @@ class CardController < ActionController::Base
|
|
141
150
|
end
|
142
151
|
|
143
152
|
rescue_from_class ActiveRecord::RecordInvalid
|
144
|
-
rescue_from_class
|
153
|
+
rescue_from_class Card::Error::UserError
|
154
|
+
rescue_from_class StandardError if rescue_all?
|
145
155
|
end
|
data/rails/engine-routes.rb
CHANGED
@@ -44,6 +44,9 @@ Decko::Engine.routes.draw do
|
|
44
44
|
match "(card)/update(/:mark(.:format))" => "card#update", via: %i[post put patch]
|
45
45
|
match "(card)/delete(/:mark(.:format))" => "card#delete", via: :delete
|
46
46
|
|
47
|
+
# for super-lazy under-achievers
|
48
|
+
get ":mark/:view(.:format)" => "card#read"
|
49
|
+
|
47
50
|
# Wildcard for bad addresses
|
48
51
|
get "*mark" => "card#read", view: "bad_address"
|
49
52
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decko
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2019-
|
14
|
+
date: 2019-03-15 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: card
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: 1.97.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.97.0
|
30
30
|
description: a wiki approach to stuctured data, dynamic interaction, and web design
|
31
31
|
email:
|
32
32
|
- info@decko.org
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- lib/decko/generators/decko/templates/config/databases/sqlite3.yml
|
102
102
|
- lib/decko/generators/decko/templates/config/deck.yml
|
103
103
|
- lib/decko/generators/decko/templates/config/environment.rb
|
104
|
+
- lib/decko/generators/decko/templates/config/initializers/cypress_dev.rb
|
104
105
|
- lib/decko/generators/decko/templates/config/routes.erb
|
105
106
|
- lib/decko/generators/decko/templates/gitignore
|
106
107
|
- lib/decko/generators/decko/templates/public/files/htaccess
|
@@ -145,12 +146,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
146
|
requirements:
|
146
147
|
- - ">="
|
147
148
|
- !ruby/object:Gem::Version
|
148
|
-
version:
|
149
|
+
version: 2.4.1
|
149
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
151
|
requirements:
|
151
|
-
- - "
|
152
|
+
- - ">"
|
152
153
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
154
|
+
version: 1.3.1
|
154
155
|
requirements: []
|
155
156
|
rubyforge_project:
|
156
157
|
rubygems_version: 2.6.13
|