aladdin 0.0.8 → 0.1.0.pre

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.
Files changed (43) hide show
  1. data/LICENSE +1 -1
  2. data/README.md +8 -31
  3. data/lib/aladdin.rb +22 -23
  4. data/lib/aladdin/app.rb +10 -21
  5. data/lib/aladdin/commands/new.rb +2 -2
  6. data/lib/aladdin/config.rb +18 -32
  7. data/lib/aladdin/constants.rb +0 -18
  8. data/lib/aladdin/submission.rb +5 -4
  9. data/lib/aladdin/support.rb +0 -1
  10. data/lib/aladdin/support/weak_comparator.rb +2 -0
  11. data/lib/aladdin/version.rb +1 -2
  12. data/skeleton/manifest.yml +9 -0
  13. metadata +15 -111
  14. data/lib/aladdin/render.rb +0 -9
  15. data/lib/aladdin/render/error.rb +0 -17
  16. data/lib/aladdin/render/html.rb +0 -136
  17. data/lib/aladdin/render/sanitize.rb +0 -90
  18. data/lib/aladdin/render/templates.rb +0 -2
  19. data/lib/aladdin/render/templates/header.rb +0 -52
  20. data/lib/aladdin/render/templates/image.rb +0 -54
  21. data/lib/aladdin/render/templates/multi.rb +0 -40
  22. data/lib/aladdin/render/templates/navigation.rb +0 -34
  23. data/lib/aladdin/render/templates/problem.rb +0 -114
  24. data/lib/aladdin/render/templates/short.rb +0 -30
  25. data/lib/aladdin/render/templates/table.rb +0 -109
  26. data/lib/aladdin/render/templates/template.rb +0 -34
  27. data/lib/aladdin/support/logger.rb +0 -29
  28. data/skeleton/manifest.json +0 -10
  29. data/views/haml/exe.haml +0 -5
  30. data/views/haml/header.haml +0 -5
  31. data/views/haml/img.haml +0 -6
  32. data/views/haml/multi.haml +0 -16
  33. data/views/haml/nav.haml +0 -5
  34. data/views/haml/short.haml +0 -12
  35. data/views/haml/table.haml +0 -28
  36. data/views/scss/_forms.scss +0 -9
  37. data/views/scss/_github.scss +0 -65
  38. data/views/scss/_mathjax.scss +0 -5
  39. data/views/scss/_pygment.scss +0 -15
  40. data/views/scss/_settings.scss +0 -271
  41. data/views/scss/app.scss +0 -75
  42. data/views/scss/general_foundicons.scss +0 -71
  43. data/views/scss/general_foundicons_ie7.scss +0 -56
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Jiunn Haur Lim, Carnegie Mellon University
1
+ Copyright (c) 2012-2013 Jiunn Haur Lim, Carnegie Mellon University
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,27 +1,17 @@
1
- # Aladdin
2
- [![Build Status](https://secure.travis-ci.org/jimjh/aladdin.png?branch=master)](https://travis-ci.org/jimjh/aladdin)
3
- [![Dependency Status](https://gemnasium.com/jimjh/aladdin.png)](https://gemnasium.com/jimjh/aladdin)
4
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/jimjh/aladdin)
1
+ # Aladdin a.k.a. genie-previewer
2
+ [![Build Status](https://secure.travis-ci.org/jimjh/genie-previewer.png?branch=master)](https://travis-ci.org/jimjh/genie-previewer)
3
+ [![Dependency Status](https://gemnasium.com/jimjh/genie-previewer.png)](https://gemnasium.com/jimjh/genie-previewer)
4
+ [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/jimjh/genie-previewer)
5
5
 
6
- Generates lessons using the markdown document and tests provided by the author.
6
+ Previews lessons using the markdown document and tests provided by the author.
7
7
 
8
8
  ## Installation
9
- Add this line to your application's Gemfile:
10
-
11
- gem 'aladdin'
12
-
13
- And then execute:
14
-
15
- $> easy_install Pygments
16
- $> bundle install
17
-
18
- Or install it yourself as:
19
9
 
20
10
  $> easy_install Pygments
21
11
  $> gem install aladdin
22
12
 
23
13
  ## Usage
24
- Create a new directory for your notes _e.g._ `lesson_0`. Change into that
14
+ Create a new directory for your lesson _e.g._ `lesson_0`. Change into that
25
15
  directory, then execute:
26
16
 
27
17
  ```sh
@@ -34,6 +24,8 @@ Update `index.md` and provide your unit tests in the lesson directory. Finally,
34
24
  $> aladdin server
35
25
  ```
36
26
 
27
+ Your lesson may be previewed at `http://localhost:3456`.
28
+
37
29
  A short guide can be obtained using
38
30
 
39
31
  ```sh
@@ -47,18 +39,3 @@ Note that the following filenames are reserved:
47
39
  - `__font`
48
40
  - `__img`
49
41
  - verify
50
-
51
- ## Contributing
52
-
53
- 1. Fork it
54
- 2. Create your feature branch (`git checkout -b my-new-feature`)
55
- 3. Commit your changes (`git commit -am 'Add some feature'`)
56
- 4. Push to the branch (`git push origin my-new-feature`)
57
- 5. Create new Pull Request
58
-
59
- ## Troublesome Parts
60
-
61
- 1. Launch an Ubuntu instance
62
- 1. Install ruby through rvm
63
- 1. Install build-essentials
64
- 1. Install libxslt-dev libxml2-dev
@@ -1,35 +1,34 @@
1
1
  # ~*~ encoding: utf-8 ~*~
2
- require 'json'
3
- require 'active_support/core_ext/hash'
4
- require 'active_support/core_ext/string'
5
-
6
2
  require 'aladdin/constants'
7
3
  require 'aladdin/config'
8
4
  require 'aladdin/support'
9
- require 'aladdin/render'
10
5
 
11
- # Aladdin is a gem that lesson authors can use to preview and test their
12
- # lessons locally.
13
6
  module Aladdin
14
- class << self
7
+ extend self
15
8
 
16
- include Support::Logger
17
- attr_accessor :config
9
+ # @!attribute [r] config
10
+ # @return [Hash] configuration hash
11
+ attr_accessor :config
18
12
 
19
- # Launches the tutorial app using 'thin' as the default webserver.
20
- # @option opts [String] from path to author's markdown documents;
21
- # defaults to the current working directory
22
- def launch(opts = {})
23
- root = opts[:from] || Dir.pwd
24
- @config = Config.new root
25
- require 'aladdin/app'
26
- Aladdin::App.set :root, root
27
- Aladdin::App.set :views, Aladdin::VIEWS.merge(markdown: root)
28
- Aladdin::App.run!
29
- rescue => e
30
- logger.error e.message
31
- end
13
+ # Prepares to launch the previewer app by configuring sinatra.
14
+ # @option opts [String] from (Dir.pwd) path to author's markdown documents
15
+ # @return [void]
16
+ def prepare(opts = {})
17
+ root = opts[:from] || Dir.pwd
18
+ @config = Config.new root
19
+ require 'aladdin/app'
20
+ Aladdin::App.set :root, root
21
+ Aladdin::App.set :views, Aladdin::VIEWS.merge(markdown: root)
22
+ end
32
23
 
24
+ # Launches the previewer app.
25
+ # @return [void]
26
+ def launch(opts = {})
27
+ prepare opts
28
+ Aladdin::App.run!
29
+ rescue => e
30
+ puts e.message
33
31
  end
32
+
34
33
  end
35
34
 
@@ -1,24 +1,17 @@
1
1
  # ~*~ encoding: utf-8 ~*~
2
2
  require 'sinatra'
3
+ require 'spirit'
4
+ require 'spirit/tilt/template'
3
5
  require 'aladdin/submission'
4
6
 
5
7
  module Aladdin
6
8
 
7
- # Sinatra app that serves the tutorial. Should be able to use this in a
9
+ # Sinatra app that serves the lesson preview. Should be able to use this in a
8
10
  # config.ru file or as middleware. Authors should launch the app using the
9
11
  # +bin/aladdin+ executable.
10
12
  class App < Sinatra::Base
11
13
  extend Support::OneOfPattern
12
14
 
13
- # Default page
14
- INDEX = :index
15
-
16
- # Default markdown options.
17
- MARKDOWN_OPTIONS = {
18
- renderer: Aladdin::Render::HTML,
19
- layout_engine: :haml,
20
- }.merge MARKDOWN_EXTENSIONS
21
-
22
15
  class << self
23
16
  private
24
17
 
@@ -38,7 +31,6 @@ module Aladdin
38
31
  # Configures path to static assets in the public folder.
39
32
  # @return [void]
40
33
  def configure_assets
41
- puts Aladdin::PATHS.public
42
34
  set :public_folder, Aladdin::PATHS.public
43
35
  set :static_paths, Proc.new { Aladdin.config[:static_paths] }
44
36
  end
@@ -46,17 +38,16 @@ module Aladdin
46
38
  # Registers redcarpet2 and configures aladdin's markdown renderer.
47
39
  # @return [void]
48
40
  def configure_markdown
49
- Tilt.register Tilt::RedcarpetTemplate::Redcarpet2, *%w(markdown mkd md)
50
- set :markdown, MARKDOWN_OPTIONS
51
- set :haml, escape_html: true, format: :html5
41
+ Tilt.register Spirit::Tilt::Template, *%w(markdown mkd md)
42
+ set :markdown, layout: :layout, layout_engine: :haml
43
+ set :haml, escape_html: true, format: :html5
52
44
  end
53
45
 
54
46
  end
55
47
 
56
48
  # Calls the given +block+ and invokes +pass+ on error.
57
- # @param block block to call within wrapper
58
49
  def render_or_pass(&block)
59
- begin return block.call
50
+ begin yield
60
51
  rescue Exception => e
61
52
  logger.error e.message
62
53
  pass
@@ -74,16 +65,14 @@ module Aladdin
74
65
 
75
66
  get '/*' do |path|
76
67
  pass if path.starts_with? '__sinatra__'
77
- path = path.empty? ? INDEX : path.to_sym
78
- render_or_pass do
79
- markdown(path, locals: Aladdin.config)
80
- end
68
+ path = path.empty? ? :index : path.to_sym
69
+ render_or_pass { markdown(path, locals: Aladdin.config) }
81
70
  end
82
71
 
83
72
  post '/verify/:type/:id' do
84
73
  input = request.body.read
85
74
  content_type :json
86
- Submission.new(params[:id], params[:type], params, input).verify
75
+ Submission.new(params[:id], params[:type], params, input, logger).verify
87
76
  end
88
77
 
89
78
  end
@@ -1,7 +1,7 @@
1
1
  # ~*~ encoding: utf-8 ~*~
2
2
  require 'aladdin'
3
3
  require 'optparse'
4
- require 'aladdin/constants'
4
+ require 'spirit/constants'
5
5
 
6
6
  module Aladdin
7
7
 
@@ -12,7 +12,7 @@ module Aladdin
12
12
  module New
13
13
 
14
14
  # Array of skeleton files to be copied over.
15
- FILES = %w(index.md images) << Aladdin::Config::FILE
15
+ FILES = ['images', Spirit::MANIFEST, Spirit::INDEX]
16
16
 
17
17
  # Array of dot files to be copied over and renamed.
18
18
  DOT_FILES = %w(gitignore)
@@ -1,21 +1,18 @@
1
- # ~*~ encoding: utf-8 ~*~
1
+ # ~*~ encoding: utf-8 ~*~
2
2
  require 'active_support/core_ext/hash'
3
- require 'json'
4
- require 'aladdin/constants'
3
+ require 'active_support/core_ext/string'
4
+ require 'spirit'
5
5
 
6
6
  module Aladdin
7
7
 
8
8
  # Raised when there is a configuration error.
9
9
  class ConfigError < StandardError; end
10
10
 
11
- # Configuration options for Aladdin. Gets all of its values from {FILE}.
12
- # Values in this file should not be trusted because they are given by the
13
- # user.
11
+ # Configuration options for Aladdin. Gets all of its values from
12
+ # {::Spirit::MANIFEST}. Values in this file should not be trusted
13
+ # because they are given by the user.
14
14
  class Config < Hash
15
15
 
16
- # Name of configuration file.
17
- FILE = 'manifest.json'
18
-
19
16
  # Default configuration options.
20
17
  DEFAULTS = {
21
18
  verify: {
@@ -33,14 +30,12 @@ module Aladdin
33
30
  # {ConfigError} if the file could not be read or parsed.
34
31
  # @param [String] root path to lesson root
35
32
  def initialize(root)
36
- @path = File.expand_path FILE, root
37
- ensure_readable
38
33
  super nil
39
- newsets = ::JSON.parse File.read @path
40
- merge! DEFAULTS.deep_merge newsets.symbolize_keys
41
- ensure_valid
42
- rescue ::JSON::JSONError => e
43
- raise ConfigError.new e.message
34
+ @path = File.join root, Spirit::MANIFEST
35
+ ensure_readable
36
+ merge! DEFAULTS.deep_merge Spirit::Manifest.load_file @path
37
+ rescue Spirit::Error => e
38
+ not_parseable e
44
39
  end
45
40
 
46
41
  private
@@ -52,34 +47,25 @@ module Aladdin
52
47
  not_readable unless File.readable? @path
53
48
  end
54
49
 
55
- # Raises {ConfigError} unless the all of the values in the supplied
56
- # configuration have the same type as those in {DEFAULTS}.
57
- def ensure_valid(defaults=DEFAULTS, supplied=self)
58
- supplied.each do |key, value|
59
- bad_type(key, defaults[key], value) unless value.is_a? defaults[key].class
60
- ensure_valid(defaults[key], value) if Hash === value
61
- end
62
- end
63
-
64
50
  def missing
65
- raise ConfigError.new <<-eos.squish
51
+ raise ConfigError, <<-eos.squish
66
52
  We expected a manifest file at #{@path}, but couldn't find it. Please
67
- ensure that you have a file named #{Aladdin::Config::File} at the root
53
+ ensure that you have a file named #{Spirit::MANIFEST} at the root
68
54
  of your lesson directory.
69
55
  eos
70
56
  end
71
57
 
72
58
  def not_readable
73
- raise ConfigError.new <<-eos.squish
59
+ raise ConfigError, <<-eos.squish
74
60
  We found a manifest file at #{@path}, but couldn't open it for reading.
75
61
  Please ensure that you have the permissions to read the file.
76
62
  eos
77
63
  end
78
64
 
79
- def bad_type(key, expected, actual)
80
- raise ConfigError.new <<-eos.squish
81
- The #{key} option in the manifest file should be a #{expected.class.name}
82
- instead of a #{actual.class.name}.
65
+ def not_parseable(e)
66
+ raise ConfigError, <<-eos.strip_heredoc
67
+ We found a manifest file at #{@path}, but couldn't parse it. The following error message was returned from the parser:
68
+ #{e.message}
83
69
  eos
84
70
  end
85
71
 
@@ -15,25 +15,7 @@ module Aladdin
15
15
  # Paths to different types of views.
16
16
  VIEWS = {
17
17
  haml: File.expand_path('views/haml', root),
18
- scss: File.expand_path('views/scss', root),
19
18
  default: File.expand_path('views', root)
20
19
  }
21
20
 
22
- require 'tmpdir'
23
- # @todo TODO allow configuration?
24
- DATA_DIR = Dir.tmpdir
25
-
26
- # File extension for solution files.
27
- SOLUTION_EXT = '.sol'
28
-
29
- # Markdown extensions for Redcarpet
30
- MARKDOWN_EXTENSIONS = {
31
- no_intra_emphasis: true,
32
- tables: true,
33
- fenced_code_blocks: true,
34
- autolink: true,
35
- strikethrough: true,
36
- tables: true,
37
- }
38
-
39
21
  end
@@ -10,7 +10,6 @@ module Aladdin
10
10
  # it's unsuitable for production use. It does not impose any security
11
11
  # restrictions at all.
12
12
  class Submission
13
- include Support::Logger
14
13
  include Support::WeakComparator
15
14
 
16
15
  SCRATCHSPACE = '.__ss'
@@ -20,8 +19,8 @@ module Aladdin
20
19
  # @param [Type] type problem or code
21
20
  # @param [Hash] params form values
22
21
  # @param [String] input student input
23
- def initialize(id, type, params, input)
24
- @id, @type, @params, @input = id, type, params, input
22
+ def initialize(id, type, params, input, logger)
23
+ @id, @type, @params, @input, @logger = id, type, params, input, logger
25
24
  end
26
25
 
27
26
  # Verifies the student's submission.
@@ -34,12 +33,14 @@ module Aladdin
34
33
 
35
34
  private
36
35
 
36
+ attr_reader :logger
37
+
37
38
  # Verifies problem answers by comparing the submitted answer against the
38
39
  # answer in the solution file.
39
40
  # @return [String] (json-encoded) true iff the submitted answer is correct.
40
41
  def verify_problem
41
42
  id = @id.gsub File::SEPARATOR, '' # protect against directory attacks
42
- solution = File.expand_path id + Aladdin::SOLUTION_EXT, Aladdin::DATA_DIR
43
+ solution = File.expand_path id + Spirit::SOLUTION_EXT, Spirit::SOLUTION_DIR
43
44
  File.open(solution, 'rb') { |f| same? @params['answer'], Marshal.restore(f) }.to_json
44
45
  rescue => e
45
46
  logger.warn e.message
@@ -1,6 +1,5 @@
1
1
  # ~*~ encoding: utf-8 ~*~
2
2
  require 'aladdin/support/core_ext'
3
- require 'aladdin/support/logger'
4
3
  require 'aladdin/support/weak_comparator'
5
4
  require 'aladdin/support/multiroute'
6
5
 
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+
1
3
  # ~*~ encoding: utf-8 ~*~
2
4
  module Aladdin
3
5
 
@@ -1,4 +1,3 @@
1
1
  module Aladdin
2
- # Version number.
3
- VERSION = "0.0.8"
2
+ VERSION = '0.1.0.pre'
4
3
  end
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: A Genie Lesson
3
+ description: Hello World! Welcome to your first lesson.
4
+ categories:
5
+ - ruby
6
+ - programming
7
+ - software
8
+ static_paths:
9
+ - images
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aladdin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
5
- prerelease:
4
+ version: 0.1.0.pre
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jiunn Haur Lim
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-02 00:00:00.000000000 Z
12
+ date: 2013-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
@@ -28,77 +28,13 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '1.3'
30
30
  - !ruby/object:Gem::Dependency
31
- name: haml
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '3.1'
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: '3.1'
46
- - !ruby/object:Gem::Dependency
47
- name: redcarpet
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '2.2'
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: '2.2'
62
- - !ruby/object:Gem::Dependency
63
- name: albino
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '1.3'
70
- type: :runtime
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: '1.3'
78
- - !ruby/object:Gem::Dependency
79
- name: htmlentities
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 4.3.1
86
- type: :runtime
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 4.3.1
94
- - !ruby/object:Gem::Dependency
95
- name: sanitize
31
+ name: activesupport
96
32
  requirement: !ruby/object:Gem::Requirement
97
33
  none: false
98
34
  requirements:
99
35
  - - ~>
100
36
  - !ruby/object:Gem::Version
101
- version: 2.0.3
37
+ version: 3.2.9
102
38
  type: :runtime
103
39
  prerelease: false
104
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,15 +42,15 @@ dependencies:
106
42
  requirements:
107
43
  - - ~>
108
44
  - !ruby/object:Gem::Version
109
- version: 2.0.3
45
+ version: 3.2.9
110
46
  - !ruby/object:Gem::Dependency
111
- name: activesupport
47
+ name: spirit
112
48
  requirement: !ruby/object:Gem::Requirement
113
49
  none: false
114
50
  requirements:
115
51
  - - ~>
116
52
  - !ruby/object:Gem::Version
117
- version: 3.2.9
53
+ version: 0.1.0.pre
118
54
  type: :runtime
119
55
  prerelease: false
120
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +58,7 @@ dependencies:
122
58
  requirements:
123
59
  - - ~>
124
60
  - !ruby/object:Gem::Version
125
- version: 3.2.9
61
+ version: 0.1.0.pre
126
62
  - !ruby/object:Gem::Dependency
127
63
  name: yard
128
64
  requirement: !ruby/object:Gem::Requirement
@@ -203,7 +139,7 @@ dependencies:
203
139
  - - ~>
204
140
  - !ruby/object:Gem::Version
205
141
  version: 0.6.2
206
- description: A simple tutorial generator for markdown documents.
142
+ description: Parses the lesson files and launches a preview site.
207
143
  email:
208
144
  - codex.is.poetry@gmail.com
209
145
  executables:
@@ -220,50 +156,21 @@ files:
220
156
  - lib/aladdin/commands.rb
221
157
  - lib/aladdin/config.rb
222
158
  - lib/aladdin/constants.rb
223
- - lib/aladdin/render/error.rb
224
- - lib/aladdin/render/html.rb
225
- - lib/aladdin/render/sanitize.rb
226
- - lib/aladdin/render/templates/header.rb
227
- - lib/aladdin/render/templates/image.rb
228
- - lib/aladdin/render/templates/multi.rb
229
- - lib/aladdin/render/templates/navigation.rb
230
- - lib/aladdin/render/templates/problem.rb
231
- - lib/aladdin/render/templates/short.rb
232
- - lib/aladdin/render/templates/table.rb
233
- - lib/aladdin/render/templates/template.rb
234
- - lib/aladdin/render/templates.rb
235
- - lib/aladdin/render.rb
236
159
  - lib/aladdin/submission.rb
237
160
  - lib/aladdin/support/core_ext/hash.rb
238
161
  - lib/aladdin/support/core_ext.rb
239
- - lib/aladdin/support/logger.rb
240
162
  - lib/aladdin/support/multiroute.rb
241
163
  - lib/aladdin/support/weak_comparator.rb
242
164
  - lib/aladdin/support.rb
243
165
  - lib/aladdin/version.rb
244
166
  - lib/aladdin.rb
245
- - views/haml/exe.haml
246
- - views/haml/header.haml
247
- - views/haml/img.haml
248
167
  - views/haml/layout.haml
249
- - views/haml/multi.haml
250
- - views/haml/nav.haml
251
- - views/haml/short.haml
252
- - views/haml/table.haml
253
- - views/scss/_forms.scss
254
- - views/scss/_github.scss
255
- - views/scss/_mathjax.scss
256
- - views/scss/_pygment.scss
257
- - views/scss/_settings.scss
258
- - views/scss/app.scss
259
- - views/scss/general_foundicons.scss
260
- - views/scss/general_foundicons_ie7.scss
261
168
  - bin/aladdin
262
169
  - skeleton/gitignore
263
170
  - skeleton/images/graphic.png
264
171
  - skeleton/index.md
265
- - skeleton/manifest.json
266
- homepage: https://github.com/jimjh/aladdin
172
+ - skeleton/manifest.yml
173
+ homepage: https://github.com/jimjh/genie-previewer
267
174
  licenses:
268
175
  - MIT
269
176
  post_install_message: ! "\e[0;34;49m» Use `easy_install Pygments` to install the python
@@ -280,18 +187,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
187
  required_rubygems_version: !ruby/object:Gem::Requirement
281
188
  none: false
282
189
  requirements:
283
- - - ! '>='
190
+ - - ! '>'
284
191
  - !ruby/object:Gem::Version
285
- version: '0'
286
- segments:
287
- - 0
288
- hash: -57149837415841268
192
+ version: 1.3.1
289
193
  requirements:
290
194
  - pygments, python's syntax highlighter
291
195
  rubyforge_project:
292
196
  rubygems_version: 1.8.24
293
197
  signing_key:
294
198
  specification_version: 3
295
- summary: A simple tutorial generator for markdown documents.
199
+ summary: A previewer for lessons written in the Genie Markup Language
296
200
  test_files: []
297
201
  has_rdoc: