chopin 0.0.7 → 0.0.8

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.
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