shoes-core 4.0.0.pre8 → 4.0.0.pre9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/bin/shoes-picker +1 -0
  3. data/lib/shoes.rb +1 -0
  4. data/lib/shoes/animation.rb +1 -0
  5. data/lib/shoes/app.rb +7 -1
  6. data/lib/shoes/arc.rb +2 -3
  7. data/lib/shoes/arrow.rb +2 -3
  8. data/lib/shoes/background.rb +2 -2
  9. data/lib/shoes/border.rb +2 -2
  10. data/lib/shoes/builtin_methods.rb +2 -2
  11. data/lib/shoes/button.rb +2 -2
  12. data/lib/shoes/check_button.rb +2 -2
  13. data/lib/shoes/color.rb +1 -0
  14. data/lib/shoes/color/dsl.rb +1 -0
  15. data/lib/shoes/color/dsl_helpers.rb +1 -0
  16. data/lib/shoes/color/hex_converter.rb +1 -0
  17. data/lib/shoes/common/art_element.rb +6 -9
  18. data/lib/shoes/common/attachable.rb +1 -0
  19. data/lib/shoes/common/background_element.rb +2 -11
  20. data/lib/shoes/common/changeable.rb +1 -0
  21. data/lib/shoes/common/clickable.rb +1 -0
  22. data/lib/shoes/common/fill.rb +1 -0
  23. data/lib/shoes/common/hover.rb +2 -1
  24. data/lib/shoes/common/inspect.rb +1 -0
  25. data/lib/shoes/common/link_finder.rb +1 -0
  26. data/lib/shoes/common/positioning.rb +1 -0
  27. data/lib/shoes/common/registration.rb +1 -0
  28. data/lib/shoes/common/remove.rb +1 -0
  29. data/lib/shoes/common/rotate.rb +1 -0
  30. data/lib/shoes/common/safely_evaluate.rb +13 -0
  31. data/lib/shoes/common/state.rb +4 -10
  32. data/lib/shoes/common/stroke.rb +1 -0
  33. data/lib/shoes/common/style.rb +13 -3
  34. data/lib/shoes/common/style_normalizer.rb +1 -0
  35. data/lib/shoes/common/translate.rb +1 -0
  36. data/lib/shoes/common/ui_element.rb +67 -5
  37. data/lib/shoes/common/visibility.rb +7 -6
  38. data/lib/shoes/configuration.rb +5 -16
  39. data/lib/shoes/console.rb +91 -0
  40. data/lib/shoes/core.rb +1 -1
  41. data/lib/shoes/core/version.rb +1 -1
  42. data/lib/shoes/dialog.rb +1 -0
  43. data/lib/shoes/dimension.rb +1 -0
  44. data/lib/shoes/dimensions.rb +1 -0
  45. data/lib/shoes/download.rb +1 -0
  46. data/lib/shoes/dsl.rb +28 -588
  47. data/lib/shoes/dsl/animate.rb +51 -0
  48. data/lib/shoes/dsl/art.rb +256 -0
  49. data/lib/shoes/dsl/element.rb +56 -0
  50. data/lib/shoes/dsl/interaction.rb +76 -0
  51. data/lib/shoes/dsl/media.rb +38 -0
  52. data/lib/shoes/dsl/setup.rb +42 -0
  53. data/lib/shoes/dsl/style.rb +81 -0
  54. data/lib/shoes/dsl/text.rb +50 -0
  55. data/lib/shoes/file_not_found_error.rb +1 -0
  56. data/lib/shoes/font.rb +2 -1
  57. data/lib/shoes/gradient.rb +1 -0
  58. data/lib/shoes/image.rb +2 -2
  59. data/lib/shoes/image_pattern.rb +1 -0
  60. data/lib/shoes/input_box.rb +11 -2
  61. data/lib/shoes/internal_app.rb +16 -3
  62. data/lib/shoes/key_event.rb +1 -0
  63. data/lib/shoes/line.rb +2 -3
  64. data/lib/shoes/link.rb +2 -0
  65. data/lib/shoes/list_box.rb +3 -3
  66. data/lib/shoes/logger_collection.rb +38 -0
  67. data/lib/shoes/mock.rb +1 -0
  68. data/lib/shoes/mock/animation.rb +1 -0
  69. data/lib/shoes/mock/app.rb +1 -0
  70. data/lib/shoes/mock/arc.rb +1 -0
  71. data/lib/shoes/mock/arrow.rb +1 -0
  72. data/lib/shoes/mock/background.rb +1 -0
  73. data/lib/shoes/mock/border.rb +1 -0
  74. data/lib/shoes/mock/button.rb +1 -0
  75. data/lib/shoes/mock/check.rb +1 -0
  76. data/lib/shoes/mock/clickable.rb +1 -0
  77. data/lib/shoes/mock/common_methods.rb +1 -0
  78. data/lib/shoes/mock/dialog.rb +1 -0
  79. data/lib/shoes/mock/download.rb +1 -0
  80. data/lib/shoes/mock/font.rb +1 -0
  81. data/lib/shoes/mock/image.rb +1 -0
  82. data/lib/shoes/mock/image_pattern.rb +1 -0
  83. data/lib/shoes/mock/input_box.rb +4 -0
  84. data/lib/shoes/mock/keypress.rb +1 -0
  85. data/lib/shoes/mock/keyrelease.rb +1 -0
  86. data/lib/shoes/mock/line.rb +1 -0
  87. data/lib/shoes/mock/link.rb +1 -0
  88. data/lib/shoes/mock/list_box.rb +1 -0
  89. data/lib/shoes/mock/oval.rb +1 -0
  90. data/lib/shoes/mock/packager.rb +3 -0
  91. data/lib/shoes/mock/progress.rb +1 -0
  92. data/lib/shoes/mock/radio.rb +1 -0
  93. data/lib/shoes/mock/rect.rb +1 -0
  94. data/lib/shoes/mock/shape.rb +1 -0
  95. data/lib/shoes/mock/slot.rb +1 -0
  96. data/lib/shoes/mock/sound.rb +1 -0
  97. data/lib/shoes/mock/star.rb +1 -0
  98. data/lib/shoes/mock/text_block.rb +1 -0
  99. data/lib/shoes/mock/timer.rb +1 -0
  100. data/lib/shoes/not_implemented_error.rb +1 -0
  101. data/lib/shoes/oval.rb +2 -3
  102. data/lib/shoes/packager.rb +13 -0
  103. data/lib/shoes/point.rb +1 -0
  104. data/lib/shoes/progress.rb +2 -3
  105. data/lib/shoes/radio.rb +1 -0
  106. data/lib/shoes/rect.rb +2 -3
  107. data/lib/shoes/renamed_delegate.rb +1 -0
  108. data/lib/shoes/shape.rb +2 -4
  109. data/lib/shoes/slot.rb +3 -3
  110. data/lib/shoes/slot_contents.rb +1 -0
  111. data/lib/shoes/sound.rb +1 -0
  112. data/lib/shoes/span.rb +1 -0
  113. data/lib/shoes/standard_logger.rb +14 -0
  114. data/lib/shoes/star.rb +2 -3
  115. data/lib/shoes/text.rb +1 -0
  116. data/lib/shoes/text_block.rb +4 -4
  117. data/lib/shoes/text_block_dimensions.rb +1 -0
  118. data/lib/shoes/timer.rb +1 -0
  119. data/lib/shoes/ui/cli.rb +5 -0
  120. data/lib/shoes/ui/picker.rb +2 -1
  121. data/lib/shoes/url.rb +1 -0
  122. data/lib/shoes/version.rb +1 -1
  123. data/lib/shoes/widget.rb +1 -0
  124. data/lib/shoes/window.rb +1 -0
  125. metadata +14 -5
  126. data/lib/shoes/common/initialization.rb +0 -71
  127. data/lib/shoes/logger.rb +0 -65
  128. data/lib/shoes/logger/ruby.rb +0 -15
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Check
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  module Clickable
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  module CommonMethods
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Dialog
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Download
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  module Font
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Image
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class ImagePattern
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class InputBox
@@ -7,6 +8,9 @@ class Shoes
7
8
  def enabled(_value)
8
9
  end
9
10
 
11
+ def readonly=(_value)
12
+ end
13
+
10
14
  def highlight_text(_start_index, _finish_index)
11
15
  end
12
16
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Keypress
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Keyrelease
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Line
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Link
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class ListBox
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Oval
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Packager
5
+ attr_accessor :gems
6
+
4
7
  def initialize(_dsl)
5
8
  @packages = []
6
9
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Progress
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Radio
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Rect
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Shape
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Slot
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Sound
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Star
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class TextBlock
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  module Mock
3
4
  class Timer
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class NotImplementedError < StandardError
3
4
  end
data/lib/shoes/oval.rb CHANGED
@@ -1,7 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
- class Oval
3
- include Common::ArtElement
4
-
3
+ class Oval < Common::ArtElement
5
4
  style_with :art_styles, :center, :common_styles, :dimensions, :radius
6
5
  STYLES = { fill: Shoes::COLORS[:black] }.freeze
7
6
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class Packager
3
4
  attr_reader :packages, :backend
@@ -5,6 +6,7 @@ class Shoes
5
6
  def initialize
6
7
  begin
7
8
  @backend = Shoes.backend_for(self)
9
+ configure_gems
8
10
  rescue ArgumentError
9
11
  # Packaging unsupported by this backend
10
12
  end
@@ -24,6 +26,17 @@ class Shoes
24
26
  @backend.run(path)
25
27
  end
26
28
 
29
+ def configure_gems
30
+ @backend.gems = []
31
+ return unless defined?(::Bundler)
32
+
33
+ @backend.gems = ::Bundler.environment.specs.map(&:name) - ["shoes"]
34
+ rescue Bundler::GemfileNotFound
35
+ # Ok to be quiet since we didn't even have a Gemfile
36
+ rescue => e
37
+ Shoes.logger.error "Looking up gems for packaging failed:\n#{e.message}"
38
+ end
39
+
27
40
  def help(program_name)
28
41
  return "" if @backend.nil?
29
42
  @backend.help(program_name)
data/lib/shoes/point.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class Point
3
4
  include Common::Inspect
@@ -1,7 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
- class Progress
3
- include Common::UIElement
4
-
3
+ class Progress < Common::UIElement
5
4
  style_with :common_styles, :dimensions, :fraction
6
5
  STYLES = { fraction: 0.0 }.freeze
7
6
 
data/lib/shoes/radio.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class Radio < CheckButton
3
4
  style_with :checked, :click, :common_styles, :dimensions, :group, :state
data/lib/shoes/rect.rb CHANGED
@@ -1,7 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
- class Rect
3
- include Common::ArtElement
4
-
3
+ class Rect < Common::ArtElement
5
4
  style_with :angle, :art_styles, :curve, :common_styles, :dimensions
6
5
  STYLES = { angle: 0, curve: 0, fill: Shoes::COLORS[:black] }.freeze
7
6
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module RenamedDelegate
2
3
  include Forwardable
3
4
 
data/lib/shoes/shape.rb CHANGED
@@ -1,11 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
- class Shape
3
- include Common::ArtElement
4
-
3
+ class Shape < Common::ArtElement
5
4
  attr_reader :blk, :x, :y, :left_bound, :top_bound, :right_bound, :bottom_bound
6
5
 
7
6
  style_with :art_styles, :center, :common_styles, :dimensions
8
-
9
7
  STYLES = { fill: Shoes::COLORS[:black] }.freeze
10
8
 
11
9
  def create_dimensions(left, top)
data/lib/shoes/slot.rb CHANGED
@@ -1,6 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
- class Slot
3
- include Common::UIElement
3
+ class Slot < Common::UIElement
4
4
  include Common::Clickable
5
5
  include Common::Hover
6
6
 
@@ -55,7 +55,7 @@ class Shoes
55
55
  def eval_block(blk, *args)
56
56
  old_current_slot = @app.current_slot
57
57
  @app.current_slot = self
58
- blk.call(*args) if blk
58
+ safely_evaluate(*args, &blk)
59
59
  @app.current_slot = old_current_slot
60
60
  end
61
61
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class SlotContents < SimpleDelegator
3
4
  include Common::Inspect
data/lib/shoes/sound.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class Sound
3
4
  include Common::Inspect
data/lib/shoes/span.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class Span < Text
3
4
  def initialize(texts, styles = {})
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ require 'logger'
3
+
4
+ class Shoes
5
+ class StandardLogger < SimpleDelegator
6
+ def initialize(device = STDERR)
7
+ logger = ::Logger.new(device)
8
+ logger.formatter = proc do |severity, _datetime, _progname, message|
9
+ "#{severity}: #{message}\n"
10
+ end
11
+ super(logger)
12
+ end
13
+ end
14
+ end
data/lib/shoes/star.rb CHANGED
@@ -1,7 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
- class Star
3
- include Common::ArtElement
4
-
3
+ class Star < Common::ArtElement
5
4
  style_with :angle, :art_styles, :common_styles, :dimensions, :inner, :outer, :points
6
5
  STYLES = { angle: 0, fill: Shoes::COLORS[:black] }.freeze
7
6
 
data/lib/shoes/text.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class Text
3
4
  include Common::Inspect
@@ -1,9 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
- CENTER = "center".freeze
3
- DEFAULT_TEXTBLOCK_FONT = "Arial".freeze
3
+ CENTER = "center"
4
+ DEFAULT_TEXTBLOCK_FONT = "Arial"
4
5
 
5
- class TextBlock
6
- include Common::UIElement
6
+ class TextBlock < Common::UIElement
7
7
  include Common::Clickable
8
8
  include Common::Hover
9
9
  include Common::LinkFinder
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  # We take over a bunch of the absolute_* measurements since the jagged
3
4
  # shape of a flowed TextBlock doesn't follow the usual rules for dimensions
data/lib/shoes/timer.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  class Timer
3
4
  include Common::Inspect
data/lib/shoes/ui/cli.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'optparse'
2
3
  require 'shoes'
3
4
 
@@ -43,6 +44,10 @@ Usage: #{opts.program_name} [-h] [-p package] file
43
44
  exit
44
45
  end
45
46
 
47
+ opts.on('-f', '--fail-fast', 'Crash on exceptions in Shoes code') do
48
+ Shoes.configuration.fail_fast = true
49
+ end
50
+
46
51
  opts.separator @packager.help(opts.program_name)
47
52
  end
48
53
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  #
2
3
  # This class is used for interactively (if necessary) picking the Shoes
3
4
  # backend that the user will run their Shoes app with.
@@ -58,7 +59,7 @@ class Shoes
58
59
 
59
60
  def find_candidates(desired_backend)
60
61
  search_string = "shoes/**/#{desired_backend}/generate_backend.rb"
61
- search_string.gsub!("//", "/")
62
+ search_string = search_string.gsub("//", "/")
62
63
  Gem.find_files(search_string)
63
64
  end
64
65
 
data/lib/shoes/url.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  # Backwards compatibility, kind of likely to be removed
3
4
  def self.inherited(base_class)
data/lib/shoes/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Shoes
4
- VERSION = "4.0.0.pre8"
4
+ VERSION = "4.0.0.pre9"
5
5
  end
data/lib/shoes/widget.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  # This is the superclass for creating custom Shoes widgets.
3
4
  #
data/lib/shoes/window.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Shoes
2
3
  # This class serves as a placeholder for referring to the overall window of
3
4
  # a Shoes app, such as attaching a slot to the top.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoes-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.pre8
4
+ version: 4.0.0.pre9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Shoes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-28 00:00:00.000000000 Z
11
+ date: 2017-03-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Shoes is the best little GUI toolkit for Ruby. Shoes makes building for Mac, Windows, and Linux super simple. This is the DSL for writing your app. You'll need a backend to run it.
14
14
  email:
@@ -44,13 +44,13 @@ files:
44
44
  - lib/shoes/common/clickable.rb
45
45
  - lib/shoes/common/fill.rb
46
46
  - lib/shoes/common/hover.rb
47
- - lib/shoes/common/initialization.rb
48
47
  - lib/shoes/common/inspect.rb
49
48
  - lib/shoes/common/link_finder.rb
50
49
  - lib/shoes/common/positioning.rb
51
50
  - lib/shoes/common/registration.rb
52
51
  - lib/shoes/common/remove.rb
53
52
  - lib/shoes/common/rotate.rb
53
+ - lib/shoes/common/safely_evaluate.rb
54
54
  - lib/shoes/common/state.rb
55
55
  - lib/shoes/common/stroke.rb
56
56
  - lib/shoes/common/style.rb
@@ -59,6 +59,7 @@ files:
59
59
  - lib/shoes/common/ui_element.rb
60
60
  - lib/shoes/common/visibility.rb
61
61
  - lib/shoes/configuration.rb
62
+ - lib/shoes/console.rb
62
63
  - lib/shoes/core.rb
63
64
  - lib/shoes/core/version.rb
64
65
  - lib/shoes/dialog.rb
@@ -66,6 +67,14 @@ files:
66
67
  - lib/shoes/dimensions.rb
67
68
  - lib/shoes/download.rb
68
69
  - lib/shoes/dsl.rb
70
+ - lib/shoes/dsl/animate.rb
71
+ - lib/shoes/dsl/art.rb
72
+ - lib/shoes/dsl/element.rb
73
+ - lib/shoes/dsl/interaction.rb
74
+ - lib/shoes/dsl/media.rb
75
+ - lib/shoes/dsl/setup.rb
76
+ - lib/shoes/dsl/style.rb
77
+ - lib/shoes/dsl/text.rb
69
78
  - lib/shoes/file_not_found_error.rb
70
79
  - lib/shoes/font.rb
71
80
  - lib/shoes/gradient.rb
@@ -78,8 +87,7 @@ files:
78
87
  - lib/shoes/line.rb
79
88
  - lib/shoes/link.rb
80
89
  - lib/shoes/list_box.rb
81
- - lib/shoes/logger.rb
82
- - lib/shoes/logger/ruby.rb
90
+ - lib/shoes/logger_collection.rb
83
91
  - lib/shoes/mock.rb
84
92
  - lib/shoes/mock/animation.rb
85
93
  - lib/shoes/mock/app.rb
@@ -126,6 +134,7 @@ files:
126
134
  - lib/shoes/slot_contents.rb
127
135
  - lib/shoes/sound.rb
128
136
  - lib/shoes/span.rb
137
+ - lib/shoes/standard_logger.rb
129
138
  - lib/shoes/star.rb
130
139
  - lib/shoes/text.rb
131
140
  - lib/shoes/text_block.rb