Skip to content

Commit 330945b

Browse files
committed
- Switch from ERB to GTX templates
1 parent fce07ed commit 330945b

File tree

104 files changed

+810
-645
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+810
-645
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
Runfile linguist-language=Ruby
2+
*.gtx linguist-language=Ruby

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ gem 'rspec_approvals'
77
gem 'runfile'
88
gem 'runfile-tasks'
99
gem 'simplecov'
10+
gem 'gtx', path: '/vagrant/gems/gtx'
1011

1112
gemspec

bashly.gemspec

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ Gem::Specification.new do |s|
1717
s.license = 'MIT'
1818
s.required_ruby_version = ">= 2.7.0"
1919

20-
s.add_runtime_dependency 'colsole', '~> 0.7'
2120
s.add_runtime_dependency 'completely', '~> 0.4.2'
21+
s.add_runtime_dependency 'gtx', '~> 0.1.0'
22+
23+
s.add_runtime_dependency 'colsole', '~> 0.7'
2224
s.add_runtime_dependency 'mister_bin', '~> 0.7'
2325
s.add_runtime_dependency 'requires', '~> 0.2'
2426
s.add_runtime_dependency 'filewatcher', '~> 1.1'

lib/bashly/concerns/renderable.rb

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
require 'erb'
2+
require 'gtx'
23

34
module Bashly
45
module Renderable
56
def render(view)
6-
template = File.read view_path(view)
7-
erb = ERB.new(template, trim_mode: '%-')
8-
erb.filename = "#{views_subfolder}.#{view}"
9-
erb.result binding
7+
if erb? view
8+
template = File.read erb_view_path(view)
9+
erb = ERB.new(template, trim_mode: '%-')
10+
erb.filename = "#{views_subfolder}.#{view}"
11+
erb.result binding
12+
else
13+
GTX.render_file view_path(view), context: binding, filename: "#{views_subfolder}.#{view}"
14+
end
1015
end
1116

1217
def strings
@@ -36,7 +41,15 @@ def load_user_file(file, placeholder: true)
3641

3742
private
3843

44+
def erb?(view)
45+
File.exist? erb_view_path view
46+
end
47+
3948
def view_path(view)
49+
"#{self_views_path}/#{view}.gtx"
50+
end
51+
52+
def erb_view_path(view)
4053
"#{self_views_path}/#{view}.erb"
4154
end
4255

lib/bashly/views/argument/usage.erb

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
= view_marker
2+
> echo " {{ label }}"
3+
> printf "{{ help.wrap(76).indent(4).sanitize_for_print }}\n"
4+
5+
if allowed
6+
> printf " {{ strings[:allowed] % { values: allowed.join(', ') } }}\n"
7+
end
8+
9+
if default
10+
> printf " {{ strings[:default] % { value: default } }}\n"
11+
end
12+
13+
> echo
14+
>

lib/bashly/views/argument/validations.erb

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
= view_marker
2+
3+
if validate
4+
> if [[ -n $(validate_{{ validate }} "$1") ]]; then
5+
> printf "{{ strings[:validation_error] }}\n" "{{ name.upcase }}" "$(validate_{{ validate }} "$1")"
6+
> exit 1
7+
> fi
8+
>
9+
10+
end

lib/bashly/views/command/catch_all_filter.erb

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
= view_marker
2+
3+
if catch_all.required?
4+
> if [[ ${#other_args[@]} -eq 0 ]]; then
5+
> printf "{{ strings[:missing_required_argument] % { arg: catch_all.label, usage: usage_string } }}\n"
6+
> exit 1
7+
> fi
8+
end
9+
10+
>

0 commit comments

Comments
 (0)