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.
- 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
|
-
[](https://codeclimate.com/github/jimjh/
|
1
|
+
# Aladdin a.k.a. genie-previewer
|
2
|
+
[](https://travis-ci.org/jimjh/genie-previewer)
|
3
|
+
[](https://gemnasium.com/jimjh/genie-previewer)
|
4
|
+
[](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:
|