madride 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -1,34 +1,37 @@
1
- MADRIDe
1
+ Madride
2
2
  =======
3
3
 
4
- Zero-configuration command-line HTTP server with cow super-powers... Basically
5
- it allows you to serve files from the directory where you call it. But in
6
- comparison to other solutions `madride` allows you to write htmls in slim, js in
7
- coffescript and so on... Consider you have following files:
4
+ Zero-configuration command-line HTTP server with cow super-powers...
8
5
 
9
- .
10
- |- pages/
11
- | `- index.html.slim
12
- |
13
- `- assets/
14
- |- app.js.coffee
15
- `- app.css.sass
6
+ It's main purpose is to provide environment for quick prototyping of
7
+ pages with *slim* (or any other template engine - feel free to open
8
+ feature request issue) without need to run full stack of big boys like
9
+ *sinatra* or *rails*. All you need is to simply execute `madride` with
10
+ paths to your assets and pages.
16
11
 
17
- You can run `madride pages assets` to start serving these files as:
12
+ The most simple example is:
18
13
 
19
- /index.html
20
- /app.js
21
- /app.css
14
+ madride .
22
15
 
23
- Similar to the Rails assets pipeline but for html too :))
16
+ This will start a server on `0.0.0.0:3000` serving files from `.`
17
+ directory. You can provide a dummy data (that will be available in your
18
+ templates) with `--data path/to/data.yml` argument. See `example` dir.
24
19
 
25
20
 
26
- Future plans
21
+ Installation
27
22
  ------------
28
23
 
29
- - Attachable plugins via `--with <plugin-name>` option, e.g. `--with bootstrap`
30
- to allow you easily "attach" bootstrap assets.
31
- - Support for data sources. Prototyping is nice, but it's kinda hard without at
32
- least mocked data sources. So I plan to add `--data <path_to_yaml_file>`
33
- option that will allow to specify a file with data available within html
34
- templates.
24
+ gem install madride
25
+
26
+
27
+ Usage
28
+ -----
29
+
30
+ See `example` for details.
31
+
32
+
33
+ License & Copyrights
34
+ --------------------
35
+
36
+ * Copyright (c) 2012 [Aleksey "ixti" Zapparov](https://github.com/ixti)
37
+ * Released under the MIT license. See LICENSE for details.
data/bin/madride CHANGED
@@ -12,7 +12,7 @@ require 'rack'
12
12
  # Options container. Filled in with default values.
13
13
  #
14
14
 
15
- options = { :host => '0.0.0.0', :port => 3000, :data => {} }
15
+ options = { :host => '0.0.0.0', :port => 3000, :data => {}, :paths => [] }
16
16
 
17
17
  #
18
18
  # Parse options
@@ -35,22 +35,44 @@ OptionParser.new("", 24, ' ') do |opts|
35
35
  opts.on("-w", "--with PLUGIN", "include PLUGIN") do |plugin|
36
36
  begin
37
37
  require "madride-with-#{plugin}"
38
- rescue LoadError
39
- require plugin
40
38
  rescue LoadError
41
39
  puts "Plugin #{plugin} not found"
42
40
  end
43
41
  end
44
42
 
45
43
  opts.on("-d", "--data FILE", "read data from yaml FILE") do |file|
46
- options[:data].update! YAML.load_file file
44
+ options[:data].merge! YAML.load_file file
47
45
  end
48
46
 
47
+ #
48
+ # No arguments given - show usage help
49
+ #
50
+
49
51
  if ARGV.empty?
50
52
  puts opts.help
51
53
  exit 1
52
54
  end
53
- end.parse!
55
+
56
+ #
57
+ # Parse options
58
+ #
59
+
60
+ begin
61
+ opts.order(ARGV){ |path| options[:paths] << path }
62
+ rescue OptionParser::ParseError => e
63
+ opts.warn e.message
64
+ exit 1
65
+ end
66
+
67
+ #
68
+ # We need at least one path
69
+ #
70
+
71
+ if options[:paths].empty?
72
+ opts.warn "No paths given. See `madride --help` for usage info."
73
+ exit 1
74
+ end
75
+ end
54
76
 
55
77
  #
56
78
  # Create new madride environment
@@ -62,11 +84,7 @@ environment = Madride::Environment.new Dir.pwd
62
84
  # Fill in paths
63
85
  #
64
86
 
65
- if ARGV.empty?
66
- environment.append_path "."
67
- else
68
- ARGV.each{ |path| environment.append_path path }
69
- end
87
+ options[:paths].each{ |path| environment.append_path path }
70
88
 
71
89
  #
72
90
  # Start server
data/example/README.md CHANGED
@@ -1,4 +1,8 @@
1
1
  ## How To Start
2
2
 
3
+ Install dependencies and start server:
4
+
3
5
  bundle install
4
- bundle exec madride --with bootstrap -- assets pages
6
+ bundle exec madride --with bootstrap --data data.yml -- assets pages
7
+
8
+ Now you can open http://0.0.0.0:3000/index.html in your browser
data/example/data.yml ADDED
@@ -0,0 +1 @@
1
+ bootstrap_demo_url: "http://twitter.github.com/bootstrap/examples/hero.html"
@@ -52,7 +52,6 @@ html[lang="en"]
52
52
  hr
53
53
  footer
54
54
  p
55
- - url = "http://twitter.github.com/bootstrap/examples/hero.html"
56
55
  ' This is a demo of madride.
57
- ' Based on a <a href="#{url}">Basic marketing site</a>
56
+ ' Based on a <a href="#{bootstrap_demo_url}">Basic marketing site</a>
58
57
  ' example of Bootstrap from Twitter.
@@ -1,3 +1,3 @@
1
1
  module Madride
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: madride
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -142,6 +142,7 @@ files:
142
142
  - example/Gemfile
143
143
  - example/README.md
144
144
  - example/assets/app.css
145
+ - example/data.yml
145
146
  - example/pages/index.html.slim
146
147
  - lib/madride.rb
147
148
  - lib/madride/context_patch.rb
@@ -171,24 +172,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
171
172
  - - ! '>='
172
173
  - !ruby/object:Gem::Version
173
174
  version: '0'
174
- segments:
175
- - 0
176
- hash: 828496883
177
175
  required_rubygems_version: !ruby/object:Gem::Requirement
178
176
  none: false
179
177
  requirements:
180
178
  - - ! '>='
181
179
  - !ruby/object:Gem::Version
182
180
  version: '0'
183
- segments:
184
- - 0
185
- hash: 828496883
186
181
  requirements: []
187
182
  rubyforge_project:
188
183
  rubygems_version: 1.8.23
189
184
  signing_key:
190
185
  specification_version: 3
191
- summary: madride-1.0.0
186
+ summary: madride-1.0.1
192
187
  test_files:
193
188
  - spec/.gitkeep
194
189
  - spec/environment_spec.rb