erb4slim 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/erb4slim +62 -0
  3. data/lib/erb4slim.rb +43 -0
  4. 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: []