penguin 0.0.1.beta1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .sass-cache/
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Jimmy Cuadra
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,28 @@
1
+ # Penguin
2
+
3
+ Penguin is a tool for creating web-based presentations using your preferred preprocessors.
4
+
5
+ ## Command line interface
6
+
7
+ `penguin new NAME` to generate a new project.
8
+ `penguin` from inside a project directory to start the server.
9
+
10
+ ## Configuration
11
+
12
+ All the files you will work with in creating your presentation use the basename "deck." Defaults are set for you when generating a new project with `penguin new`. For the HTML, CSS, and JS files, the file extensions should match whichever preprocessors you're using for the given type. The generator uses Haml, Sass, and CoffeeScript by default, but you can use any libraries you like.
13
+
14
+ * `deck.rb` is the configuration file. Require any HTML template engine and CSS/JS preprocessors you want here. Call `set :template_engine, :engine_name_here` to tell Penguin which library to use for generating your HTML.
15
+
16
+ * `deck.haml` is your presentation HTML.
17
+
18
+ * `deck.sass` is your presentation stylesheet.
19
+
20
+ * `deck.coffee` is your presentation JavaScript.
21
+
22
+ ## Presentation format
23
+
24
+ Your presentation deck is plain HTML. Each slide is denoted by a top-level element with a class of `slide`.
25
+
26
+ ## License
27
+
28
+ Penguin is available under the included MIT license. See `LICENSE` for details.
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require "bundler/gem_tasks"
4
+
5
+ task :dev do
6
+ Dir.chdir("assets/template")
7
+ Bundler.require
8
+ Penguin::Application.run!
9
+ end
10
+
11
+ task :default => :dev
@@ -0,0 +1,45 @@
1
+ @import penguin/reset
2
+
3
+ $lineHeight: 36px
4
+
5
+ body
6
+ background: steelblue
7
+ font-family: Arial, sans-serif
8
+ font-size: 28px
9
+ line-height: $lineHeight
10
+
11
+ h1, h2, h3, h4, h5, h6
12
+ text-align: center
13
+
14
+ h1
15
+ font-size: 48px
16
+ line-height: $lineHeight * 2
17
+
18
+ h2
19
+ font-size: 36px
20
+ line-height: $lineHeight * 2
21
+
22
+ h3
23
+ font-size: 30px
24
+ line-height: $lineHeight * 1.5
25
+
26
+ h4
27
+ font-size: 24px
28
+
29
+ h5
30
+ font-size: 20px
31
+
32
+ h6
33
+ font-size: 16px
34
+
35
+ .container
36
+ margin: 40px auto
37
+ width: 960px
38
+
39
+ .slide
40
+ display: none
41
+ &.current
42
+ display: block
43
+
44
+ .centered
45
+ text-align: center
@@ -0,0 +1,70 @@
1
+ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video
2
+ background: transparent
3
+ border: 0
4
+ font-size: 100%
5
+ margin: 0
6
+ outline: 0
7
+ padding: 0
8
+ vertical-align: baseline
9
+
10
+ body
11
+ line-height: 1
12
+
13
+ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
14
+ display: block
15
+
16
+ nav ul
17
+ list-style: none
18
+
19
+ blockquote, q
20
+ quotes: none
21
+
22
+ blockquote
23
+ &:before, &:after
24
+ content: ''
25
+ content: none
26
+
27
+ q
28
+ &:before, &:after
29
+ content: ''
30
+ content: none
31
+
32
+ a
33
+ background: transparent
34
+ font-size: 100%
35
+ margin: 0
36
+ padding: 0
37
+ vertical-align: baseline
38
+
39
+ ins
40
+ background-color: #ff9
41
+ color: #000
42
+ text-decoration: none
43
+
44
+ mark
45
+ background-color: #ff9
46
+ color: #000
47
+ font-style: italic
48
+ font-weight: bold
49
+
50
+ del
51
+ text-decoration: line-through
52
+
53
+ abbr[title], dfn[title]
54
+ border-bottom: 1px dotted
55
+ cursor: help
56
+
57
+ table
58
+ border-collapse: collapse
59
+ border-spacing: 0
60
+
61
+ hr
62
+ border: 0
63
+ border-top: 1px solid #cccccc
64
+ display: block
65
+ height: 1px
66
+ margin: 1em 0
67
+ padding: 0
68
+
69
+ input, select
70
+ vertical-align: middle
@@ -0,0 +1,27 @@
1
+ $ ->
2
+ window.Penguin =
3
+ init: ->
4
+ @deck.show(@deck.currentSlide)
5
+ $(document).on("keyup", @deck.changeSlide.bind(@deck))
6
+
7
+ deck:
8
+ slides: $(".slide")
9
+
10
+ currentSlide: 0
11
+
12
+ show: (index) ->
13
+ @slides.removeClass("current")
14
+ @slides.eq(index).addClass("current")
15
+
16
+ changeSlide: (event) ->
17
+ switch event.keyCode
18
+ when 37
19
+ return if @currentSlide is 0
20
+ @currentSlide -= 1
21
+ @show(@currentSlide)
22
+ when 39
23
+ return if @currentSlide is @slides.length - 1
24
+ @currentSlide += 1
25
+ @show(@currentSlide)
26
+
27
+ Penguin.init()
@@ -0,0 +1,3 @@
1
+ #= require penguin
2
+
3
+ # --- Your custom code goes below this point ---
@@ -0,0 +1,36 @@
1
+ .slide.centered
2
+ %h1 Penguin
3
+
4
+ %h2 A tool for making presentations.
5
+
6
+ %p Press the right arrow to continue.
7
+
8
+ .slide
9
+ %p Penguin is:
10
+
11
+ %ol
12
+ %li Simple
13
+ %li Flexible
14
+ %li Attractive
15
+
16
+ .slide
17
+ %p Source code looks great!
18
+
19
+ %pre
20
+ %code
21
+ :preserve
22
+ (function () {
23
+ var awesome = function (thing) {
24
+ console.log(thing + "is awesome!");
25
+ };
26
+
27
+ awesome("Penguin");
28
+ })();
29
+
30
+ .slide
31
+ %p Make a presentation with:
32
+
33
+ %ul
34
+ %li.step Haml
35
+ %li.step Sass
36
+ %li.step CoffeeScript
@@ -0,0 +1,7 @@
1
+ # Require and set your preferred template engine
2
+ require "haml"
3
+ set :template_engine, :haml
4
+
5
+ # Require any CSS and JS preprocessors you want to use
6
+ require "sass"
7
+ require "coffee-script"
@@ -0,0 +1,3 @@
1
+ //= require penguin
2
+
3
+ /*** Your custom code goes below this point ***/
@@ -0,0 +1,12 @@
1
+ -# You shouldn't need to edit this file.
2
+ !!! 5
3
+ %html{ lang: "en" }
4
+ %head
5
+ %meta{ charset: "utf-8" }
6
+ %title Penguin
7
+ %link{ rel: "stylesheet", href: "/assets/deck.css" }
8
+ %body
9
+ .container
10
+ = yield
11
+ %script{ src: "https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"}
12
+ %script{ src: "/assets/deck.js" }
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "penguin"
4
+
5
+ Penguin::CLI.start
@@ -0,0 +1,12 @@
1
+ require "thor/shell"
2
+
3
+ module Penguin
4
+ autoload :Application, "penguin/application"
5
+ autoload :CLI, "penguin/cli"
6
+ autoload :Sprockets, "penguin/sprockets"
7
+ autoload :VERSION, "penguin/version"
8
+
9
+ def self.ui
10
+ @ui ||= Thor::Base.shell.new
11
+ end
12
+ end
@@ -0,0 +1,30 @@
1
+ require "sinatra/base"
2
+
3
+ module Penguin
4
+ class Application < Sinatra::Base
5
+ set :root, Dir.pwd
6
+ set :public_folder, root
7
+ set :views, root
8
+ set :static, true
9
+
10
+ configure do
11
+ begin
12
+ eval File.read(File.expand_path("deck.rb", root))
13
+ rescue LoadError => e
14
+ gem_name = e.message.match(/\s(\S+)$/) && $1
15
+ Penguin.ui.say "A required gem was not found. Please run `gem install #{gem_name}` and try again.", :red
16
+ abort
17
+ end
18
+ end
19
+
20
+ use Sprockets do |env|
21
+ env.append_path root
22
+ env.append_path File.expand_path("../../../assets/css", __FILE__)
23
+ env.append_path File.expand_path("../../../assets/js", __FILE__)
24
+ end
25
+
26
+ get "/" do
27
+ send(settings.template_engine, :deck)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ require "thor"
2
+ require "pathname"
3
+
4
+ module Penguin
5
+ class CLI < Thor
6
+ include Thor::Actions
7
+
8
+ def self.source_root
9
+ File.expand_path("../../../assets", __FILE__)
10
+ end
11
+
12
+ default_task :start
13
+
14
+ desc "start", "Start your presentation"
15
+ def start
16
+ if Pathname.new("deck.rb").exist?
17
+ say "Starting Penguin... Press control-C to stop.", :green
18
+ Application.run!
19
+ else
20
+ say "You must be inside a project. Run `penguin new NAME` to create one.", :red
21
+ end
22
+ end
23
+
24
+ desc "new NAME", "Create a new Penguin project called NAME"
25
+ def new(name)
26
+ directory "template", name
27
+ say "You're ready to slide with Penguin!", :green
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,25 @@
1
+ require "sprockets"
2
+
3
+ module Penguin
4
+ class Sprockets
5
+ PREFIX = %r{/assets}
6
+
7
+ def initialize(app)
8
+ @app = app
9
+ @sprockets = ::Sprockets::Environment.new
10
+ yield @sprockets if block_given?
11
+ end
12
+
13
+ def call(env)
14
+ path_info = env["PATH_INFO"]
15
+ if path_info =~ PREFIX
16
+ env["PATH_INFO"].sub!(PREFIX, "")
17
+ @sprockets.call(env)
18
+ else
19
+ @app.call(env)
20
+ end
21
+ ensure
22
+ env["PATH_INFO"] = path_info
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ module Penguin
2
+ module VERSION
3
+ MAJOR = 0
4
+ MINOR = 0
5
+ PATCH = 1
6
+ PRE = "beta1"
7
+
8
+ STRING = [MAJOR, MINOR, PATCH, PRE].compact.join(".")
9
+ end
10
+ end
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/penguin/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Jimmy Cuadra"]
6
+ gem.email = ["jimmy@jimmycuadra.com"]
7
+ gem.description = %q{Penguin is a tool for creating presentations.}
8
+ gem.summary = %q{Penguin is a tool for creating web-based presentations using your preferred preprocessors.}
9
+ gem.homepage = "https://github.com/jimmycuadra/penguin"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(spec)/})
14
+ gem.name = "penguin"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = Penguin::VERSION::STRING
17
+
18
+ gem.add_runtime_dependency("sinatra", ">= 1.3")
19
+ gem.add_runtime_dependency("sprockets", ">= 2.4")
20
+ gem.add_runtime_dependency("thor", ">= 0.15")
21
+
22
+ gem.add_development_dependency("rspec", ">= 2.10")
23
+ gem.add_development_dependency("capybara", ">= 1.1")
24
+ gem.add_development_dependency("pry", ">= 0.9")
25
+ gem.add_development_dependency("pry-nav", ">= 0.2")
26
+ gem.add_development_dependency("haml", ">= 3.1")
27
+ gem.add_development_dependency("sass", ">= 3.1")
28
+ gem.add_development_dependency("coffee-script", ">= 2.2")
29
+ end
@@ -0,0 +1,18 @@
1
+ require "spec_helper"
2
+
3
+ describe Penguin::Application, type: :request do
4
+ it "makes slides available at the root path" do
5
+ visit "/"
6
+ page.should have_content("Penguin")
7
+ end
8
+
9
+ it "makes CSS accessible via Sprockets" do
10
+ visit "/assets/deck.css"
11
+ page.status_code.should == 200
12
+ end
13
+
14
+ it "makes JS accessible via Sprockets" do
15
+ visit "/assets/deck.js"
16
+ page.status_code.should == 200
17
+ end
18
+ end
@@ -0,0 +1,52 @@
1
+ require "spec_helper"
2
+
3
+ describe Penguin::CLI do
4
+ before do
5
+ Pathname.new("tmp").mkpath
6
+ Dir.chdir("tmp")
7
+ end
8
+
9
+ after do
10
+ Dir.chdir("..")
11
+ Pathname.new("tmp").rmtree
12
+ end
13
+
14
+ describe "#start" do
15
+ context "inside a project" do
16
+ before do
17
+ silence(:stdout) { described_class.start(["new", "foo"]) }
18
+ Dir.chdir("foo")
19
+ end
20
+
21
+ after do
22
+ Dir.chdir("..")
23
+ end
24
+
25
+ it "starts up the server" do
26
+ Penguin::Application.should_receive(:run!)
27
+ silence(:stdout) { described_class.start(["start"]) }
28
+ end
29
+ end
30
+
31
+ context "outside a project" do
32
+ it "outputs a message telling the user to create a project first" do
33
+ output = capture(:stdout) { described_class.start(["start"]) }
34
+ output.should include("must be inside a project")
35
+ end
36
+ end
37
+ end
38
+
39
+ describe "#new" do
40
+ it "creates a new directory with the given name" do
41
+ silence(:stdout) { described_class.start(["new", "foo"]) }
42
+ Pathname.new("foo").should be_a_directory
43
+ end
44
+
45
+ it "copies the presentation templates into the new directory" do
46
+ silence(:stdout) { described_class.start(["new", "foo"]) }
47
+ ["rb", "haml", "sass", "coffee"].each do |ext|
48
+ Pathname.new("foo/deck.#{ext}").should be_a_file
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,31 @@
1
+ ENV["RACK_ENV"] = "test"
2
+
3
+ require "penguin"
4
+
5
+ # Make the App (and Sprockets) think spec/dummy is the root
6
+ Dir.chdir("spec/dummy")
7
+ require "penguin/application"
8
+ Dir.chdir("../..")
9
+
10
+ require "pathname"
11
+ require "pry"
12
+ require "capybara/rspec"
13
+
14
+ RSpec.configure do |config|
15
+ Capybara.app = Penguin::Application
16
+
17
+ def capture(stream)
18
+ begin
19
+ stream = stream.to_s
20
+ eval "$#{stream} = StringIO.new"
21
+ yield
22
+ result = eval("$#{stream}").string
23
+ ensure
24
+ eval("$#{stream} = #{stream.upcase}")
25
+ end
26
+
27
+ result
28
+ end
29
+
30
+ alias :silence :capture
31
+ end
metadata ADDED
@@ -0,0 +1,235 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: penguin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.beta1
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Jimmy Cuadra
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: sprockets
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '2.4'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '2.4'
46
+ - !ruby/object:Gem::Dependency
47
+ name: thor
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0.15'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0.15'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '2.10'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '2.10'
78
+ - !ruby/object:Gem::Dependency
79
+ name: capybara
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '1.1'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '1.1'
94
+ - !ruby/object:Gem::Dependency
95
+ name: pry
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0.9'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0.9'
110
+ - !ruby/object:Gem::Dependency
111
+ name: pry-nav
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0.2'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0.2'
126
+ - !ruby/object:Gem::Dependency
127
+ name: haml
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '3.1'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '3.1'
142
+ - !ruby/object:Gem::Dependency
143
+ name: sass
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '3.1'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '3.1'
158
+ - !ruby/object:Gem::Dependency
159
+ name: coffee-script
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '2.2'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '2.2'
174
+ description: Penguin is a tool for creating presentations.
175
+ email:
176
+ - jimmy@jimmycuadra.com
177
+ executables:
178
+ - penguin
179
+ extensions: []
180
+ extra_rdoc_files: []
181
+ files:
182
+ - .gitignore
183
+ - Gemfile
184
+ - LICENSE
185
+ - README.md
186
+ - Rakefile
187
+ - assets/css/penguin.sass
188
+ - assets/css/penguin/reset.sass
189
+ - assets/js/penguin.coffee
190
+ - assets/template/deck.coffee
191
+ - assets/template/deck.haml
192
+ - assets/template/deck.rb
193
+ - assets/template/deck.sass
194
+ - assets/template/favicon.ico
195
+ - assets/template/layout.haml
196
+ - bin/penguin
197
+ - lib/penguin.rb
198
+ - lib/penguin/application.rb
199
+ - lib/penguin/cli.rb
200
+ - lib/penguin/sprockets.rb
201
+ - lib/penguin/version.rb
202
+ - penguin.gemspec
203
+ - spec/penguin/application_spec.rb
204
+ - spec/penguin/cli_spec.rb
205
+ - spec/spec_helper.rb
206
+ homepage: https://github.com/jimmycuadra/penguin
207
+ licenses: []
208
+ post_install_message:
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ none: false
214
+ requirements:
215
+ - - ! '>='
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
218
+ required_rubygems_version: !ruby/object:Gem::Requirement
219
+ none: false
220
+ requirements:
221
+ - - ! '>'
222
+ - !ruby/object:Gem::Version
223
+ version: 1.3.1
224
+ requirements: []
225
+ rubyforge_project:
226
+ rubygems_version: 1.8.24
227
+ signing_key:
228
+ specification_version: 3
229
+ summary: Penguin is a tool for creating web-based presentations using your preferred
230
+ preprocessors.
231
+ test_files:
232
+ - spec/penguin/application_spec.rb
233
+ - spec/penguin/cli_spec.rb
234
+ - spec/spec_helper.rb
235
+ has_rdoc: