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.
- data/LICENSE +1 -1
- data/README.md +8 -31
- data/lib/aladdin.rb +22 -23
- data/lib/aladdin/app.rb +10 -21
- data/lib/aladdin/commands/new.rb +2 -2
- data/lib/aladdin/config.rb +18 -32
- data/lib/aladdin/constants.rb +0 -18
- data/lib/aladdin/submission.rb +5 -4
- data/lib/aladdin/support.rb +0 -1
- data/lib/aladdin/support/weak_comparator.rb +2 -0
- data/lib/aladdin/version.rb +1 -2
- data/skeleton/manifest.yml +9 -0
- metadata +15 -111
- data/lib/aladdin/render.rb +0 -9
- data/lib/aladdin/render/error.rb +0 -17
- data/lib/aladdin/render/html.rb +0 -136
- data/lib/aladdin/render/sanitize.rb +0 -90
- data/lib/aladdin/render/templates.rb +0 -2
- data/lib/aladdin/render/templates/header.rb +0 -52
- data/lib/aladdin/render/templates/image.rb +0 -54
- data/lib/aladdin/render/templates/multi.rb +0 -40
- data/lib/aladdin/render/templates/navigation.rb +0 -34
- data/lib/aladdin/render/templates/problem.rb +0 -114
- data/lib/aladdin/render/templates/short.rb +0 -30
- data/lib/aladdin/render/templates/table.rb +0 -109
- data/lib/aladdin/render/templates/template.rb +0 -34
- data/lib/aladdin/support/logger.rb +0 -29
- data/skeleton/manifest.json +0 -10
- data/views/haml/exe.haml +0 -5
- data/views/haml/header.haml +0 -5
- data/views/haml/img.haml +0 -6
- data/views/haml/multi.haml +0 -16
- data/views/haml/nav.haml +0 -5
- data/views/haml/short.haml +0 -12
- data/views/haml/table.haml +0 -28
- data/views/scss/_forms.scss +0 -9
- data/views/scss/_github.scss +0 -65
- data/views/scss/_mathjax.scss +0 -5
- data/views/scss/_pygment.scss +0 -15
- data/views/scss/_settings.scss +0 -271
- data/views/scss/app.scss +0 -75
- data/views/scss/general_foundicons.scss +0 -71
- data/views/scss/general_foundicons_ie7.scss +0 -56
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,27 +1,17 @@
|
|
1
|
-
# Aladdin
|
2
|
-
[![Build Status](https://secure.travis-ci.org/jimjh/
|
3
|
-
[![Dependency Status](https://gemnasium.com/jimjh/
|
4
|
-
[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/jimjh/
|
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
|
-
|
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
|
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
|
data/lib/aladdin.rb
CHANGED
@@ -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
|
-
|
7
|
+
extend self
|
15
8
|
|
16
|
-
|
17
|
-
|
9
|
+
# @!attribute [r] config
|
10
|
+
# @return [Hash] configuration hash
|
11
|
+
attr_accessor :config
|
18
12
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
|
data/lib/aladdin/app.rb
CHANGED
@@ -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
|
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::
|
50
|
-
set :markdown,
|
51
|
-
set :haml,
|
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
|
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? ?
|
78
|
-
render_or_pass
|
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
|
data/lib/aladdin/commands/new.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# ~*~ encoding: utf-8 ~*~
|
2
2
|
require 'aladdin'
|
3
3
|
require 'optparse'
|
4
|
-
require '
|
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 =
|
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)
|
data/lib/aladdin/config.rb
CHANGED
@@ -1,21 +1,18 @@
|
|
1
|
-
# ~*~ encoding: utf-8 ~*~
|
1
|
+
# ~*~ encoding: utf-8 ~*~
|
2
2
|
require 'active_support/core_ext/hash'
|
3
|
-
require '
|
4
|
-
require '
|
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
|
12
|
-
# Values in this file should not be trusted
|
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
|
-
|
40
|
-
|
41
|
-
|
42
|
-
rescue ::
|
43
|
-
|
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
|
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 #{
|
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
|
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
|
80
|
-
raise ConfigError
|
81
|
-
|
82
|
-
|
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
|
|
data/lib/aladdin/constants.rb
CHANGED
@@ -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
|
data/lib/aladdin/submission.rb
CHANGED
@@ -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 +
|
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
|
data/lib/aladdin/support.rb
CHANGED
data/lib/aladdin/version.rb
CHANGED
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.
|
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-
|
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:
|
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.
|
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.
|
45
|
+
version: 3.2.9
|
110
46
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
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:
|
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:
|
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:
|
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.
|
266
|
-
homepage: https://github.com/jimjh/
|
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:
|
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
|
199
|
+
summary: A previewer for lessons written in the Genie Markup Language
|
296
200
|
test_files: []
|
297
201
|
has_rdoc:
|