midwife 0.0.5 → 0.0.6

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.5)
4
+ midwife (0.0.6)
5
5
  haml (= 3.1.7)
6
6
  listen (= 0.5.3)
7
7
  rack (= 1.4.1)
@@ -0,0 +1,19 @@
1
+ module Midwife
2
+ class Helpers
3
+ def initialize(current)
4
+ @current = current
5
+ end
6
+
7
+ def render(partial)
8
+ partial_file = "#{@current}/_#{partial}.haml"
9
+ template = File.read(partial_file)
10
+ output = Haml::Engine.new(template).render(Helpers.new(@current))
11
+ puts "haml: convert #{partial_file}."
12
+ return output
13
+ rescue Exception => e
14
+ puts "haml: failed to convert #{partial_file}."
15
+ puts e.message
16
+ puts e.backtrace.first
17
+ end
18
+ end
19
+ end
data/lib/midwife/tasks.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'listen'
2
1
  require 'haml'
2
+ require 'listen'
3
3
  require 'sass'
4
4
 
5
5
  module Midwife
@@ -14,11 +14,6 @@ module Midwife
14
14
  CONFIG = "config.ru"
15
15
  GEMFILE = "Gemfile"
16
16
 
17
- TEMPLATE_ENGINES = {
18
- :haml => Haml::Engine,
19
- :scss => Sass::Engine
20
- }
21
-
22
17
  class << self
23
18
  def build
24
19
  desc 'Setup your environment'
@@ -40,19 +35,27 @@ module Midwife
40
35
  end
41
36
 
42
37
  rule '.html' => '.haml' do |t|
43
- compile(:haml, t.source, t.name)
38
+ render(:haml, t.source, t.name)
44
39
  end
45
40
 
46
41
  rule '.css' => '.scss' do |t|
47
- compile(:scss, t.source, t.name)
42
+ render(:scss, t.source, t.name)
48
43
  end
49
44
  end
50
45
 
51
- def compile(syntax, source, target)
46
+ def render(syntax, source, target)
47
+ return if source.split("/").last.match(/^\_/)
48
+
49
+ source_dir = File.dirname(source)
52
50
  destination = target.gsub(ASSETS, PUBLIC)
53
51
  FileUtils.mkdir_p(File.dirname(destination))
54
52
  template = File.read(source)
55
- output = TEMPLATE_ENGINES[syntax].new(template, :syntax => syntax).render
53
+
54
+ if syntax == :haml
55
+ output = Haml::Engine.new(template).render(Helpers.new(source_dir))
56
+ elsif syntax == :scss
57
+ output = Sass::Engine.new(template, :syntax => syntax).render
58
+ end
56
59
 
57
60
  File.open(destination, 'w') do |file|
58
61
  file.write(output)
@@ -76,16 +79,18 @@ module Midwife
76
79
  end
77
80
 
78
81
  def listen
82
+ trap (:SIGINT) { exit }
83
+
79
84
  Listen.to(ASSETS) do |modified, added, removed|
80
85
  (modified + added).each do |source|
81
86
  extension = File.extname(source)
82
87
 
83
88
  if extension == '.haml'
84
89
  target = source.ext('html')
85
- compile(:haml, source, target)
90
+ render(:haml, source, target)
86
91
  elsif extension == '.scss'
87
92
  target = source.ext('css')
88
- compile(:scss, source, target)
93
+ render(:scss, source, target)
89
94
  end
90
95
  end
91
96
 
@@ -102,7 +107,6 @@ module Midwife
102
107
  end
103
108
 
104
109
  def serve
105
- trap('SIGINT') {}
106
110
  fork { listen }
107
111
  `rackup`
108
112
  end
@@ -1,3 +1,3 @@
1
1
  module Midwife
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
data/lib/midwife.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rake'
2
2
  require 'rake/dsl_definition'
3
+ require 'midwife/helpers'
3
4
  require 'midwife/tasks'
4
5
 
5
6
  include Rake::DSL
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.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,29 +13,39 @@ date: 2012-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &2153029340 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - =
19
+ - - '='
20
20
  - !ruby/object:Gem::Version
21
21
  version: 0.9.2.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153029340
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.9.2.2
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: listen
27
- requirement: &2153028780 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
- - - =
35
+ - - '='
31
36
  - !ruby/object:Gem::Version
32
37
  version: 0.5.3
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *2153028780
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.5.3
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rb-fsevent
38
- requirement: &2153028260 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,51 +53,76 @@ dependencies:
43
53
  version: 0.9.1
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *2153028260
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.1
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: haml
49
- requirement: &2153027780 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
- - - =
67
+ - - '='
53
68
  - !ruby/object:Gem::Version
54
69
  version: 3.1.7
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *2153027780
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - '='
76
+ - !ruby/object:Gem::Version
77
+ version: 3.1.7
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: sass
60
- requirement: &2153027300 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
- - - =
83
+ - - '='
64
84
  - !ruby/object:Gem::Version
65
85
  version: 3.2.1
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *2153027300
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - '='
92
+ - !ruby/object:Gem::Version
93
+ version: 3.2.1
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: rack
71
- requirement: &2153026840 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
- - - =
99
+ - - '='
75
100
  - !ruby/object:Gem::Version
76
101
  version: 1.4.1
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *2153026840
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - '='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.4.1
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: rack-contrib
82
- requirement: &2153026340 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
- - - =
115
+ - - '='
86
116
  - !ruby/object:Gem::Version
87
117
  version: 1.1.0
88
118
  type: :runtime
89
119
  prerelease: false
90
- version_requirements: *2153026340
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.1.0
91
126
  description: ''
92
127
  email:
93
128
  - lihsuan@8thlight.com
@@ -101,6 +136,7 @@ files:
101
136
  - README.md
102
137
  - Rakefile
103
138
  - lib/midwife.rb
139
+ - lib/midwife/helpers.rb
104
140
  - lib/midwife/tasks.rb
105
141
  - lib/midwife/templates/Gemfile
106
142
  - lib/midwife/templates/config.ru
@@ -120,7 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
156
  version: '0'
121
157
  segments:
122
158
  - 0
123
- hash: -239730729521318512
159
+ hash: 2678605950367014029
124
160
  required_rubygems_version: !ruby/object:Gem::Requirement
125
161
  none: false
126
162
  requirements:
@@ -129,10 +165,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
165
  version: '0'
130
166
  segments:
131
167
  - 0
132
- hash: -239730729521318512
168
+ hash: 2678605950367014029
133
169
  requirements: []
134
170
  rubyforge_project:
135
- rubygems_version: 1.8.4
171
+ rubygems_version: 1.8.24
136
172
  signing_key:
137
173
  specification_version: 3
138
174
  summary: A collection of preprocessors for frontend development