aladdin 0.0.8 → 0.1.0.pre

Sign up to get free protection for your applications and to get access to all the features.
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: