midwife 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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