midwife 0.0.2 → 0.0.3

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