presentation 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 762c3d623ecdde5570b5d23ced5e3096cbc8b953
4
- data.tar.gz: 8d0847e8488003c4009e28ebd744edd479e29430
3
+ metadata.gz: 5381d5772faa5aaf767939106256baf42a0bf97e
4
+ data.tar.gz: 1c2779d42a18d69002845cdb9d7afcb10be5be24
5
5
  SHA512:
6
- metadata.gz: f8727d45307f035cfe8a68e34d7556aa85f35851542df189a682968e39f9a7fc0ce8ebc87bf61c00d3978dcf2db60fe0bc6d3c00d6cc6c6da3d87814738a7b64
7
- data.tar.gz: 796f3fb55b7f7d9edb83777c4b2722fca892fa6a11ab391cccb60945700caf131622406227c839addd8adecdd82a84c742083c80b9df6f81574891d329d0029a
6
+ metadata.gz: f1deea22d545f81eca5bf967d3ebe7a1f45fd72ff50e920db8ed0a20d642fce299d6131f5a390138412ea4899e0e7b4ee2ce0b670d25e206dd8823ce5e8c6619
7
+ data.tar.gz: 6351a886f37eb93fbad732f434f4499e899143459252d27c3be97bab2b329bec29c5afa3d3dbb86f30993085757fcb93c42533ad9f80080ffe80ab4b5263a56b
@@ -14,7 +14,7 @@ slide {
14
14
 
15
15
  slide {
16
16
  title 'What does Ruby look like?'
17
- ruby_code "Use up/down arrow keys to scroll\n\n" + File.read(__FILE__)
17
+ ruby_code "# Use up/down arrow keys to scroll\n" + File.read(__FILE__)
18
18
  }
19
19
 
20
20
  slide {
@@ -40,9 +40,28 @@ class Presentation
40
40
  end
41
41
  end
42
42
 
43
- def code(language, text)
44
- # TODO: find/create some sort of Gosu compatible syntax highlighter
45
- slide.code = text
43
+ def code(language, text, line_numbers: true)
44
+ options = {}
45
+ options[:line_numbers] = :inline if line_numbers
46
+ html = CodeRay.scan(text, language).span(options)
47
+ # puts "Before:\n" + html
48
+ # remove unsupported properties
49
+ html.gsub! '<span class="CodeRay">', ''
50
+ html.gsub! /<\/span>\z/, ''
51
+ html.gsub! /font-weight:bold/, ''
52
+
53
+ # convert inline styles to Gosu compatible color tags
54
+ html.gsub! /<span style="background-color:hsla.*?">/, '<c=FFFFFF>'
55
+ html.gsub! /<span class="line-numbers">(?<space> )?(<strong>)?<a href="#n\d+?" name="n\d+?">(?<number>\d+?)<\/a>(<\/strong>)?(<\/span>)?/, '\k<space>\k<number> '
56
+ html.gsub! /<span style="color:#([0-9a-fA-F]{3});?">/ do |m|
57
+ color = $1.chars.map{|s|s*2}.join
58
+ "<c=#{color}>"
59
+ end
60
+ html.gsub! '</span>', '</c>'
61
+ html.gsub! '&quot;', '"'
62
+ # puts "After:\n" + html
63
+
64
+ slide.code = html
46
65
  end
47
66
 
48
67
  def bullet(bullet)
@@ -13,12 +13,14 @@ class Presentation
13
13
  @slide_deck.next_slide
14
14
  when Gosu::KbLeft
15
15
  @slide_deck.previous_slide
16
+ else
17
+ # @slide_deck.current_slide.button_down
16
18
  end
17
19
  end
18
20
 
19
21
  def update
20
- @slide_deck.current_slide.scroll_up if button_down? Gosu::KbUp
21
- @slide_deck.current_slide.scroll_down if button_down? Gosu::KbDown
22
+ @slide_deck.current_slide.scroll_up if button_down? Gosu::KbDown
23
+ @slide_deck.current_slide.scroll_down if button_down? Gosu::KbUp
22
24
  end
23
25
 
24
26
  def draw
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "presentation"
5
- spec.version = "0.0.1"
5
+ spec.version = "0.1.0"
6
6
  spec.authors = ["Andrew Havens"]
7
7
  spec.email = ["email@andrewhavens.com"]
8
8
  spec.description = %q{Create fullscreen presentations using Ruby.}
@@ -17,6 +17,7 @@ Gem::Specification.new do |spec|
17
17
 
18
18
  spec.add_dependency "thor"
19
19
  spec.add_dependency "gosu"
20
+ spec.add_dependency "coderay"
20
21
 
21
22
  spec.add_development_dependency "bundler", "~> 1.3"
22
23
  spec.add_development_dependency "rake"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: presentation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Havens
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: coderay
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement