midwife 0.0.2 → 0.0.3

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.2)
4
+ midwife (0.0.3)
5
5
  haml (= 3.1.7)
6
6
  listen (= 0.5.3)
7
7
  rack (= 1.4.1)
data/README.md CHANGED
@@ -13,13 +13,18 @@ In Rakefile:
13
13
  require 'midwife'
14
14
  ```
15
15
 
16
+ The rest:
17
+
18
+ $ rake setup
19
+
16
20
  ## Usage
17
21
 
18
22
  rake care # Care for your haml/scss
19
23
  rake clean # Remove any temporary products.
20
24
  rake clobber # Remove any generated file.
21
25
  rake listen # Listen to your haml/scss
26
+ rake setup # Setup your environment
22
27
 
23
28
  ---
24
29
 
25
- 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. I recommend `brew install mongoose` and run `mongoose` in the `public` folder to start a web server running on [localhost:8080](http://localhost:8080).
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).
data/lib/midwife/tasks.rb CHANGED
@@ -9,38 +9,61 @@ module Midwife
9
9
 
10
10
  ASSETS = 'assets'
11
11
  PUBLIC = 'public'
12
+ CONFIG = "config.ru"
13
+ GEMFILE = "Gemfile"
12
14
 
13
15
  CLEAN.include HTML + CSS
14
16
 
15
- CONFIG = <<FILE
16
- require 'rack'
17
- require 'rack/contrib/try_static'
17
+ class << self
18
+ def build
19
+ desc 'Setup your environment'
20
+ task :setup do
21
+ setup
22
+ end
18
23
 
19
- use Rack::TryStatic, :root => "public",
20
- :urls => %w[/],
21
- :try => ['.html', 'index.html', '/index.html']
24
+ desc 'Care for your haml/scss'
25
+ task :care => HTML + CSS
22
26
 
23
- run lambda { |env| [404, {'Content-type' => 'text/plain'}, ['Not found']] }
24
- FILE
27
+ desc 'Listen to your haml/scss'
28
+ task :listen do
29
+ listen
30
+ end
25
31
 
26
- def self.build
27
- desc 'Setup your environment'
28
- task :setup do
29
- FileUtils.mkdir_p(ASSETS) unless File.exists?(ASSETS)
30
- FileUtils.mkdir_p(PUBLIC) unless File.exists?(PUBLIC)
31
- File.open("config.ru", "w") do |file|
32
- file.write(CONFIG)
32
+ desc 'Serve your haml/scss'
33
+ task :serve do
34
+ serve
35
+ end
36
+
37
+ rule '.html' => '.haml' do |t|
38
+ compile("haml", t.source, t.name)
39
+ end
40
+
41
+ rule '.css' => '.scss' do |t|
42
+ compile("sass", t.source, t.name)
33
43
  end
34
44
  end
35
45
 
36
- desc 'Care for your haml/scss'
37
- task :care => HTML + CSS
46
+ def compile(command, source, target)
47
+ destination = target.gsub(ASSETS, PUBLIC)
48
+ FileUtils.mkdir_p(File.dirname(destination))
49
+ sh "#{command} #{source} #{destination}"
50
+ end
38
51
 
39
- desc 'Listen to your haml/scss'
40
- task :listen do |t|
52
+ def setup
53
+ FileUtils.mkdir_p(ASSETS) unless File.exists?(ASSETS)
54
+ FileUtils.mkdir_p(PUBLIC) unless File.exists?(PUBLIC)
55
+
56
+ current_dir = File.expand_path(File.dirname(__FILE__))
57
+
58
+ FileUtils.cp("#{current_dir}/templates/#{CONFIG}", CONFIG) unless File.exists?(CONFIG)
59
+ FileUtils.cp("#{current_dir}/templates/#{GEMFILE}", GEMFILE) unless File.exists?(GEMFILE)
60
+ end
61
+
62
+ def listen
41
63
  Listen.to(ASSETS) do |modified, added, removed|
42
64
  (modified + added).each do |source|
43
65
  extension = File.extname(source)
66
+
44
67
  if extension == '.haml'
45
68
  target = source.ext('html')
46
69
  compile('haml', source, target)
@@ -49,6 +72,7 @@ FILE
49
72
  compile('sass', source, target)
50
73
  end
51
74
  end
75
+
52
76
  removed.each do |source|
53
77
  destination = source.gsub(ASSETS, PUBLIC).ext('html')
54
78
  File.delete(destination)
@@ -56,19 +80,11 @@ FILE
56
80
  end
57
81
  end
58
82
 
59
- rule '.html' => '.haml' do |t|
60
- compile("haml", t.source, t.name)
61
- end
62
-
63
- rule '.css' => '.scss' do |t|
64
- compile("sass", t.source, t.name)
83
+ def serve
84
+ trap('SIGINT') {}
85
+ fork { listen }
86
+ `rackup`
65
87
  end
66
88
  end
67
-
68
- def self.compile(command, source, target)
69
- destination = target.gsub(ASSETS, PUBLIC)
70
- FileUtils.mkdir_p(File.dirname(destination))
71
- sh "#{command} #{source} #{destination}"
72
- end
73
89
  end
74
90
  end
@@ -0,0 +1,3 @@
1
+ source :rubygems
2
+
3
+ gem 'midwife'
@@ -0,0 +1,8 @@
1
+ require 'rack'
2
+ require 'rack/contrib/try_static'
3
+
4
+ use Rack::TryStatic, :root => "public",
5
+ :urls => %w[/],
6
+ :try => ['.html', 'index.html', '/index.html']
7
+
8
+ run lambda { |env| [404, {'Content-type' => 'text/plain'}, ['Not found']] }
@@ -1,3 +1,3 @@
1
1
  module Midwife
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
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.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-10-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &2161190480 !ruby/object:Gem::Requirement
16
+ requirement: &2161262500 !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: *2161190480
24
+ version_requirements: *2161262500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: listen
27
- requirement: &2161189960 !ruby/object:Gem::Requirement
27
+ requirement: &2161261960 !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: *2161189960
35
+ version_requirements: *2161261960
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rb-fsevent
38
- requirement: &2161189420 !ruby/object:Gem::Requirement
38
+ requirement: &2161261480 !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: *2161189420
46
+ version_requirements: *2161261480
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: haml
49
- requirement: &2161188940 !ruby/object:Gem::Requirement
49
+ requirement: &2161260920 !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: *2161188940
57
+ version_requirements: *2161260920
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: sass
60
- requirement: &2161188460 !ruby/object:Gem::Requirement
60
+ requirement: &2161260460 !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: *2161188460
68
+ version_requirements: *2161260460
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack
71
- requirement: &2161187980 !ruby/object:Gem::Requirement
71
+ requirement: &2161260000 !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: *2161187980
79
+ version_requirements: *2161260000
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rack-contrib
82
- requirement: &2161187500 !ruby/object:Gem::Requirement
82
+ requirement: &2161259460 !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: *2161187500
90
+ version_requirements: *2161259460
91
91
  description: ''
92
92
  email:
93
93
  - lihsuan@8thlight.com
@@ -102,6 +102,8 @@ files:
102
102
  - Rakefile
103
103
  - lib/midwife.rb
104
104
  - lib/midwife/tasks.rb
105
+ - lib/midwife/templates/Gemfile
106
+ - lib/midwife/templates/config.ru
105
107
  - lib/midwife/version.rb
106
108
  - midwife.gemspec
107
109
  homepage: http://github.com/naush/midwife
@@ -118,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
118
120
  version: '0'
119
121
  segments:
120
122
  - 0
121
- hash: 3301392848472631424
123
+ hash: 3932922018314278016
122
124
  required_rubygems_version: !ruby/object:Gem::Requirement
123
125
  none: false
124
126
  requirements:
@@ -127,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
129
  version: '0'
128
130
  segments:
129
131
  - 0
130
- hash: 3301392848472631424
132
+ hash: 3932922018314278016
131
133
  requirements: []
132
134
  rubyforge_project:
133
135
  rubygems_version: 1.8.4