erb4slim 0.0.1
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 +7 -0
- data/bin/erb4slim +62 -0
- data/lib/erb4slim.rb +43 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f666a41d4b0731d6d8c685023387083c91aa413f
|
4
|
+
data.tar.gz: ae0b1bebe5a9e67339109e0f870848b32b701bbe
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f6441b28214ff28d515cc3daed2c51369869cedde1b4631a733f630f2c2f802b3fa51ac92c16f972b4fe77cd08325c0516709b176b0531a8e22447c06bf0e588
|
7
|
+
data.tar.gz: dc157ff9a4e740a071f708224aff6773bd3f92268bb800f6a6ee803fc3a509ae413ad016fca6b678564a0bad8fa0266e0ec81d5883aac972c8687a1518e7824b
|
data/bin/erb4slim
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'erb4slim'
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
options = { recursive: false, all: false, delete: false }
|
7
|
+
|
8
|
+
optparse = OptionParser.new do |opts|
|
9
|
+
opts.banner = 'Usage: erb4slim [options] PATH_TO_FILE_OR_DIRECTORY'
|
10
|
+
|
11
|
+
opts.separator ''
|
12
|
+
opts.separator 'Options:'
|
13
|
+
|
14
|
+
opts.on('-a', '--all', 'Convert all files in the PATH_TO_FILE_OR_DIRECTORY\
|
15
|
+
directory') do
|
16
|
+
options[:all] = true
|
17
|
+
end
|
18
|
+
|
19
|
+
opts.on('-r', '--recursive', 'Convert all files recursively, starting from\
|
20
|
+
the PATH_TO_FILE_OR_DIRECTORY directory') do
|
21
|
+
options[:recursive] = true
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on('-d', '--delete', 'Will delete all *.html.erb files (leaving only\
|
25
|
+
slim files if the conversion was successful') do
|
26
|
+
options[:delete] = true
|
27
|
+
end
|
28
|
+
|
29
|
+
opts.on('-h', '--help', 'Prints help') do
|
30
|
+
puts opts
|
31
|
+
exit
|
32
|
+
end
|
33
|
+
|
34
|
+
opts.separator ''
|
35
|
+
opts.separator 'Examples:'
|
36
|
+
opts.separator 'erb4slim index.html.erb to create a single slim file'
|
37
|
+
opts.separator 'erb4slim -a ./ to create slim files for all files in a directory'
|
38
|
+
opts.separator 'erb4slim -r ./app/views/ to create slim files for all files in a directory and subdirectories'
|
39
|
+
opts.separator 'erb4slim -r -d ./app/views/ to replace all the .erb files with .slim files'
|
40
|
+
end
|
41
|
+
|
42
|
+
# First parse the options
|
43
|
+
optparse.parse!
|
44
|
+
|
45
|
+
# Then scan the ARGV for filename
|
46
|
+
filename = ARGV.pop
|
47
|
+
delete = options[:delete]
|
48
|
+
|
49
|
+
if filename
|
50
|
+
if options[:recursive]
|
51
|
+
Erb4slim.recursive(filename, delete)
|
52
|
+
elsif options[:all]
|
53
|
+
puts "Will convert all files in the #{filename} directory"
|
54
|
+
Erb4slim.all(filename, delete)
|
55
|
+
else
|
56
|
+
Erb4slim.convert(filename, delete)
|
57
|
+
end
|
58
|
+
else
|
59
|
+
puts 'You need to provide a file/directory name !'
|
60
|
+
puts optparse
|
61
|
+
exit
|
62
|
+
end
|
data/lib/erb4slim.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'haml2slim'
|
2
|
+
require 'html2haml'
|
3
|
+
|
4
|
+
module Erb4slim
|
5
|
+
def self.convert(input_file, delete = false)
|
6
|
+
extension = File.extname(input_file)
|
7
|
+
basename = File.basename(input_file, extension)
|
8
|
+
full_name = File.join(File.dirname(input_file), basename)
|
9
|
+
|
10
|
+
if extension != '.erb'
|
11
|
+
puts 'Incorrect file type ! It should be filename.erb'
|
12
|
+
return
|
13
|
+
end
|
14
|
+
result = system("html2haml #{input_file} #{full_name}.haml && haml2slim #{full_name}.haml")
|
15
|
+
if result.nil?
|
16
|
+
puts "Error during conversion: #{$?}"
|
17
|
+
else
|
18
|
+
# First clean the temporary haml file
|
19
|
+
File.delete("#{full_name}.haml") if File.exist?("#{full_name}.haml")
|
20
|
+
|
21
|
+
puts "File #{full_name}.slim has been successfully created"
|
22
|
+
# Remove the input file if needed
|
23
|
+
if delete
|
24
|
+
File.delete(input_file)
|
25
|
+
puts "File #{input_file} has been removed"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.recursive(path, delete = false)
|
31
|
+
path = _normalize_path(path)
|
32
|
+
Dir.glob("#{path}/**/*.html.erb") { |file| convert(file, delete) }
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.all(path, delete = false)
|
36
|
+
path = _normalize_path(path)
|
37
|
+
Dir.glob("#{path}/*.html.erb") { |file| convert(file, delete) }
|
38
|
+
end
|
39
|
+
|
40
|
+
def self._normalize_path(path)
|
41
|
+
path.gsub(/\/$/, '')
|
42
|
+
end
|
43
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: erb4slim
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sebastian Witowski
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-01-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '10.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '10.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: html2haml
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: haml2slim
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Converts single or multiple template files from ERB to Slim
|
70
|
+
email:
|
71
|
+
- sebastian.witowski@cern.ch
|
72
|
+
executables:
|
73
|
+
- erb4slim
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- bin/erb4slim
|
78
|
+
- lib/erb4slim.rb
|
79
|
+
homepage: https://github.com/switowski/erb4slim
|
80
|
+
licenses:
|
81
|
+
- beerware license
|
82
|
+
metadata: {}
|
83
|
+
post_install_message:
|
84
|
+
rdoc_options: []
|
85
|
+
require_paths:
|
86
|
+
- lib
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
requirements: []
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 2.4.1
|
100
|
+
signing_key:
|
101
|
+
specification_version: 4
|
102
|
+
summary: ERB to Slim Converter
|
103
|
+
test_files: []
|