midwife 0.0.4 → 0.0.5

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- midwife (0.0.4)
4
+ midwife (0.0.5)
5
5
  haml (= 3.1.7)
6
6
  listen (= 0.5.3)
7
7
  rack (= 1.4.1)
data/README.md CHANGED
@@ -19,12 +19,18 @@ The rest:
19
19
 
20
20
  ## Usage
21
21
 
22
- rake care # Care for your haml/scss
23
- rake clean # Remove any temporary products.
24
- rake clobber # Remove any generated file.
25
- rake listen # Listen to your haml/scss
26
- rake setup # Setup your environment
22
+ rake care # Care for your haml/scss
23
+ rake listen # Listen to your haml/scss
24
+ rake serve # Serve your haml/scss
25
+ rake setup # Setup your environment
27
26
 
28
27
  ---
29
28
 
30
- Make an `assets` folder, and drop your haml and scss files in there. Running `rake care` will compile haml and scss files once and drop the artifacts into the `public` fodler. Run `rake listen` will compile each time you touch the files. Run `rackup` to start a web server running on [localhost:9292](http://localhost:9292).
29
+ Make an `assets` folder, and drop your haml and scss files in there. Running `rake care` will compile haml and scss files once and drop the artifacts into the `public` fodler. Run `rake listen` will compile each time you touch the files. Run `rake serve` to start a web server running on [localhost:9292](http://localhost:9292).
30
+
31
+ ## Deploy to Heroku
32
+
33
+ $ gem install heroku
34
+ $ heroku create app_name
35
+ $ git push heroku master
36
+ $ heroku open
data/lib/midwife/tasks.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require 'listen'
2
+ require 'haml'
3
+ require 'sass'
2
4
 
3
5
  module Midwife
4
6
  class Tasks
@@ -12,6 +14,11 @@ module Midwife
12
14
  CONFIG = "config.ru"
13
15
  GEMFILE = "Gemfile"
14
16
 
17
+ TEMPLATE_ENGINES = {
18
+ :haml => Haml::Engine,
19
+ :scss => Sass::Engine
20
+ }
21
+
15
22
  class << self
16
23
  def build
17
24
  desc 'Setup your environment'
@@ -33,18 +40,29 @@ module Midwife
33
40
  end
34
41
 
35
42
  rule '.html' => '.haml' do |t|
36
- compile("haml", t.source, t.name)
43
+ compile(:haml, t.source, t.name)
37
44
  end
38
45
 
39
46
  rule '.css' => '.scss' do |t|
40
- compile("sass", t.source, t.name)
47
+ compile(:scss, t.source, t.name)
41
48
  end
42
49
  end
43
50
 
44
- def compile(command, source, target)
51
+ def compile(syntax, source, target)
45
52
  destination = target.gsub(ASSETS, PUBLIC)
46
53
  FileUtils.mkdir_p(File.dirname(destination))
47
- sh "#{command} #{source} #{destination}"
54
+ template = File.read(source)
55
+ output = TEMPLATE_ENGINES[syntax].new(template, :syntax => syntax).render
56
+
57
+ File.open(destination, 'w') do |file|
58
+ file.write(output)
59
+ end
60
+
61
+ puts "#{syntax}: convert #{source} to #{destination}."
62
+ rescue Exception => e
63
+ puts "#{syntax}: failed to convert #{source} to #{destination}."
64
+ puts e.message
65
+ puts e.backtrace.first
48
66
  end
49
67
 
50
68
  def setup
@@ -64,15 +82,20 @@ module Midwife
64
82
 
65
83
  if extension == '.haml'
66
84
  target = source.ext('html')
67
- compile('haml', source, target)
85
+ compile(:haml, source, target)
68
86
  elsif extension == '.scss'
69
87
  target = source.ext('css')
70
- compile('sass', source, target)
88
+ compile(:scss, source, target)
71
89
  end
72
90
  end
73
91
 
74
92
  removed.each do |source|
75
- destination = source.gsub(ASSETS, PUBLIC).ext('html')
93
+ extension = File.extname(source)
94
+ if extension == '.haml'
95
+ destination = source.gsub(ASSETS, PUBLIC).ext('html')
96
+ elsif extension == '.scss'
97
+ destination = source.gsub(ASSETS, PUBLIC).ext('css')
98
+ end
76
99
  File.delete(destination)
77
100
  end
78
101
  end
@@ -1,3 +1,3 @@
1
1
  module Midwife
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midwife
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-13 00:00:00.000000000 Z
12
+ date: 2012-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &2153538700 !ruby/object:Gem::Requirement
16
+ requirement: &2153029340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.2.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153538700
24
+ version_requirements: *2153029340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: listen
27
- requirement: &2153538160 !ruby/object:Gem::Requirement
27
+ requirement: &2153028780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.5.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2153538160
35
+ version_requirements: *2153028780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rb-fsevent
38
- requirement: &2153537680 !ruby/object:Gem::Requirement
38
+ requirement: &2153028260 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.9.1
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2153537680
46
+ version_requirements: *2153028260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: haml
49
- requirement: &2153537120 !ruby/object:Gem::Requirement
49
+ requirement: &2153027780 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - =
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 3.1.7
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2153537120
57
+ version_requirements: *2153027780
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: sass
60
- requirement: &2153536660 !ruby/object:Gem::Requirement
60
+ requirement: &2153027300 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - =
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 3.2.1
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2153536660
68
+ version_requirements: *2153027300
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack
71
- requirement: &2153536180 !ruby/object:Gem::Requirement
71
+ requirement: &2153026840 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - =
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.4.1
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2153536180
79
+ version_requirements: *2153026840
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rack-contrib
82
- requirement: &2153535660 !ruby/object:Gem::Requirement
82
+ requirement: &2153026340 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - =
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: 1.1.0
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *2153535660
90
+ version_requirements: *2153026340
91
91
  description: ''
92
92
  email:
93
93
  - lihsuan@8thlight.com
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  segments:
122
122
  - 0
123
- hash: -2100236743647694061
123
+ hash: -239730729521318512
124
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  none: false
126
126
  requirements:
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  segments:
131
131
  - 0
132
- hash: -2100236743647694061
132
+ hash: -239730729521318512
133
133
  requirements: []
134
134
  rubyforge_project:
135
135
  rubygems_version: 1.8.4