chopin 0.0.7 → 0.0.8

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 +4 -4
  2. data/bin/chopin +1 -1
  3. data/lib/chopin.rb +37 -27
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c5f551420f6275ad7d568ee1dba02cb46f55b69
4
- data.tar.gz: 0ce8517aa65ed6d018af7fdb572e5e79b69dea8b
3
+ metadata.gz: 0c70a52f652b5dcb36cc2439e958656110ee1fac
4
+ data.tar.gz: 36a5e98ade67fa135bce10ba6bc86d2752a8b84b
5
5
  SHA512:
6
- metadata.gz: 95a22b4c2c10d70788466793267cf3497febd94d2e9f4265f760264b7da1d72702f14746f561dfcdbf77114455a048f730b9ccee09f26be9585592c345903c96
7
- data.tar.gz: ecb7d7fb16bb61418ed6ae3f1cc07d858f5bd6c155f6fe09be94e520a41487d9525fea5e532b65268e92b027d3c8470eaad377717803653067c95eb157a20bfb
6
+ metadata.gz: a75e3768ecfdb1dc124b87c712bab77173bcab5bbd7b59441c92b7532331fe8f64f465c023f8abb4603d756499bf1d5c2eb160a44aca81ffac1f74d2efe60439
7
+ data.tar.gz: 0ac052c43843764c920b556526b3918a75fdcc73dc704ab31ab0f385c8434cccfac716ec8edc9e2dc70c69b312dc9ea86d984ad4bf39519abbf31c19250ab259
data/bin/chopin CHANGED
@@ -4,4 +4,4 @@ $:.unshift(lib_path)
4
4
 
5
5
  require 'chopin'
6
6
 
7
- Chopin.copy(ARGV[0], ARGV[1])
7
+ Chopin.copy(ARGV[0].chomp('/'), ARGV[1].chomp('/'))
data/lib/chopin.rb CHANGED
@@ -6,21 +6,20 @@ require 'redcarpet'
6
6
  require 'sass'
7
7
 
8
8
  module Chopin
9
- def self.copy(source, destination, layout = nil)
9
+ def self.copy(source, dest_root, layout = nil)
10
10
  @root = source unless @root
11
11
 
12
12
  if File.directory?(source)
13
+ destination = "#{dest_root}/#{File.basename(source).sub(@root, '')}".chomp('/')
14
+
13
15
  unless Dir.exists?(destination)
14
16
  Dir.mkdir(destination)
15
17
  puts " #{GREEN}Create#{WHITE} #{destination}"
16
18
  end
17
19
 
18
- source_directory = Dir.new(source)
19
- destination_directory = Dir.new(destination)
20
-
21
20
  layout = "#{source}/layout.erb" if File.exist?("#{source}/layout.erb")
22
21
 
23
- source_directory.each do |file|
22
+ Dir.new(source).each do |file|
24
23
  next if file == '.' || file == '..'
25
24
 
26
25
  if file[0] == '.'
@@ -33,20 +32,20 @@ module Chopin
33
32
  else
34
33
  case File.extname(source)
35
34
  when '.erb'
36
- process_erb(source, destination, layout) unless File.basename(source, '.erb') == 'layout'
35
+ process_erb(source, dest_root, layout) unless File.basename(source, '.erb') == 'layout'
37
36
 
38
37
  when '.md'
39
- process_markdown(source, destination, layout)
38
+ process_markdown(source, dest_root, layout)
40
39
 
41
40
  when '.sass'
42
- process_sass(source, destination, :sass) unless File.basename(source)[0] == '_'
41
+ process_sass(source, dest_root, :sass) unless File.basename(source)[0] == '_'
43
42
 
44
43
  when '.scss'
45
- process_sass(source, destination, :scss) unless File.basename(source)[0] == '_'
44
+ process_sass(source, dest_root, :scss) unless File.basename(source)[0] == '_'
46
45
 
47
46
  else
48
47
  puts " #{BLUE}Copy#{WHITE} #{source} -> #{destination}"
49
- FileUtils.cp(source, destination)
48
+ FileUtils.cp(source, dest_root)
50
49
  end
51
50
  end
52
51
  end
@@ -59,34 +58,45 @@ module Chopin
59
58
  .join('-')
60
59
  end
61
60
 
62
- def self.process_erb(source, destination, layout)
61
+ def self.process_erb(source, dest_dir, layout)
63
62
  base_name = File.basename(source, '.erb')
64
- destination_html = "#{destination}/#{base_name}.html"
65
- puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{destination_html}"
63
+ destination = "#{dest_dir}/#{base_name}.html"
66
64
 
67
- render_template(destination_html, layout, Namespace.new({
68
- page_name: get_page_name(source),
69
- content: ERB.new(File.read(source)).result
70
- }))
65
+ if layout == nil
66
+ puts " #{PURPLE}Parse#{WHITE} #{source} -> #{destination}"
67
+
68
+ File.new(destination, 'w').write(
69
+ ERB.new(File.read(source)).result(Namespace.new({
70
+ page_name: get_page_name(source)
71
+ }).get_binding)
72
+ )
73
+ else
74
+ puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{destination}"
75
+
76
+ render_template(destination, layout, Namespace.new({
77
+ page_name: get_page_name(source),
78
+ content: ERB.new(File.read(source)).result
79
+ }))
80
+ end
71
81
  end
72
82
 
73
- def self.process_markdown(source, destination, layout)
83
+ def self.process_markdown(source, dest_dir, layout)
74
84
  base_name = File.basename(source, '.md')
75
- destination_html = "#{destination}/#{base_name}.html"
76
- puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{destination_html}"
85
+ destination = "#{dest_dir}/#{base_name}.html"
86
+ puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{destination}"
77
87
 
78
- render_template(destination_html, layout, Namespace.new({
88
+ render_template(destination, layout, Namespace.new({
79
89
  page_name: get_page_name(source),
80
90
  content: MD.render(File.new(source).read)
81
91
  }))
82
92
  end
83
93
 
84
- def self.process_sass(source, destination, type)
94
+ def self.process_sass(source, dest_dir, type)
85
95
  base_name = File.basename(source, File.extname(source))
86
- destination_css = "#{destination}/#{base_name}.css"
87
- puts " #{CYAN}Convert#{WHITE} #{source} -> #{destination_css}"
96
+ destination = "#{dest_dir}/#{base_name}.css"
97
+ puts " #{CYAN}Convert#{WHITE} #{source} -> #{destination}"
88
98
 
89
- File.new(destination_css, 'w').write(
99
+ File.new(destination, 'w').write(
90
100
  Sass::Engine.new(File.new(source).read,
91
101
  load_paths: [File.dirname(source)],
92
102
  syntax: type
@@ -94,8 +104,8 @@ module Chopin
94
104
  )
95
105
  end
96
106
 
97
- def self.render_template(destination_html, layout, namespace)
98
- File.new(destination_html, 'w').write(
107
+ def self.render_template(destination, layout, namespace)
108
+ File.new(destination, 'w').write(
99
109
  ERB.new(File.read(layout)).result(namespace.get_binding)
100
110
  )
101
111
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chopin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Forisha