lacci 0.2.2 → 0.4.0

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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +8 -1
  4. data/lib/lacci/scarpe_cli.rb +2 -2
  5. data/lib/lacci/scarpe_core.rb +2 -1
  6. data/lib/lacci/version.rb +1 -1
  7. data/lib/scarpe/niente/app.rb +23 -0
  8. data/lib/scarpe/niente/display_service.rb +66 -0
  9. data/lib/scarpe/niente/drawable.rb +59 -0
  10. data/lib/scarpe/niente/shoes_spec.rb +93 -0
  11. data/lib/scarpe/niente.rb +32 -0
  12. data/lib/shoes/app.rb +111 -72
  13. data/lib/shoes/background.rb +2 -2
  14. data/lib/shoes/border.rb +2 -2
  15. data/lib/shoes/builtins.rb +63 -0
  16. data/lib/shoes/changelog.rb +52 -0
  17. data/lib/shoes/colors.rb +3 -1
  18. data/lib/shoes/constants.rb +41 -2
  19. data/lib/shoes/display_service.rb +80 -18
  20. data/lib/shoes/download.rb +2 -2
  21. data/lib/shoes/drawable.rb +654 -0
  22. data/lib/shoes/drawables/arc.rb +27 -0
  23. data/lib/shoes/drawables/arrow.rb +21 -0
  24. data/lib/shoes/drawables/border.rb +28 -0
  25. data/lib/shoes/drawables/button.rb +57 -0
  26. data/lib/shoes/drawables/check.rb +33 -0
  27. data/lib/shoes/drawables/document_root.rb +20 -0
  28. data/lib/shoes/{widgets → drawables}/edit_box.rb +9 -8
  29. data/lib/shoes/{widgets → drawables}/edit_line.rb +8 -7
  30. data/lib/shoes/drawables/flow.rb +20 -0
  31. data/lib/shoes/drawables/font_helper.rb +62 -0
  32. data/lib/shoes/{widgets → drawables}/image.rb +7 -7
  33. data/lib/shoes/drawables/line.rb +17 -0
  34. data/lib/shoes/drawables/link.rb +31 -0
  35. data/lib/shoes/drawables/list_box.rb +59 -0
  36. data/lib/shoes/drawables/oval.rb +48 -0
  37. data/lib/shoes/drawables/para.rb +206 -0
  38. data/lib/shoes/drawables/progress.rb +15 -0
  39. data/lib/shoes/drawables/radio.rb +35 -0
  40. data/lib/shoes/drawables/rect.rb +18 -0
  41. data/lib/shoes/{widgets → drawables}/shape.rb +8 -8
  42. data/lib/shoes/drawables/slot.rb +178 -0
  43. data/lib/shoes/drawables/stack.rb +21 -0
  44. data/lib/shoes/drawables/star.rb +28 -0
  45. data/lib/shoes/drawables/subscription_item.rb +93 -0
  46. data/lib/shoes/drawables/text_drawable.rb +122 -0
  47. data/lib/shoes/drawables/video.rb +17 -0
  48. data/lib/shoes/drawables/widget.rb +74 -0
  49. data/lib/shoes/drawables.rb +32 -0
  50. data/lib/shoes/errors.rb +38 -0
  51. data/lib/shoes/log.rb +2 -2
  52. data/lib/shoes/margin_helper.rb +79 -0
  53. data/lib/shoes/ruby_extensions.rb +15 -0
  54. data/lib/shoes-spec.rb +93 -0
  55. data/lib/shoes.rb +31 -10
  56. metadata +58 -31
  57. data/lib/shoes/spacing.rb +0 -9
  58. data/lib/shoes/widget.rb +0 -218
  59. data/lib/shoes/widgets/alert.rb +0 -19
  60. data/lib/shoes/widgets/arc.rb +0 -51
  61. data/lib/shoes/widgets/button.rb +0 -35
  62. data/lib/shoes/widgets/check.rb +0 -28
  63. data/lib/shoes/widgets/document_root.rb +0 -20
  64. data/lib/shoes/widgets/flow.rb +0 -22
  65. data/lib/shoes/widgets/font.rb +0 -14
  66. data/lib/shoes/widgets/line.rb +0 -18
  67. data/lib/shoes/widgets/link.rb +0 -25
  68. data/lib/shoes/widgets/list_box.rb +0 -25
  69. data/lib/shoes/widgets/para.rb +0 -68
  70. data/lib/shoes/widgets/radio.rb +0 -35
  71. data/lib/shoes/widgets/slot.rb +0 -75
  72. data/lib/shoes/widgets/span.rb +0 -26
  73. data/lib/shoes/widgets/stack.rb +0 -24
  74. data/lib/shoes/widgets/star.rb +0 -44
  75. data/lib/shoes/widgets/subscription_item.rb +0 -60
  76. data/lib/shoes/widgets/text_widget.rb +0 -51
  77. data/lib/shoes/widgets/video.rb +0 -15
  78. data/lib/shoes/widgets.rb +0 -29
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Shoes; end
4
+ module Shoes::Errors
5
+ class InvalidAttributeValueError < Shoes::Error; end
6
+
7
+ class TooManyInstancesError < Shoes::Error; end
8
+
9
+ class NoSuchListItemError < Shoes::Error; end
10
+
11
+ class DuplicateCreateDrawableError < Shoes::Error; end
12
+
13
+ class MultipleDrawablesFoundError < Shoes::Error; end
14
+
15
+ class NoDrawablesFoundError < Shoes::Error; end
16
+
17
+ class NoSuchStyleError < Shoes::Error; end
18
+
19
+ class NoSuchLinkableIdError < Shoes::Error; end
20
+
21
+ class BadLinkableIdError < Shoes::Error; end
22
+
23
+ class UnregisteredShoesEventError < Shoes::Error; end
24
+
25
+ class BadArgumentListError < Shoes::Error; end
26
+
27
+ class SingletonError < Shoes::Error; end
28
+
29
+ class MultipleShoesSpecRunsError < Shoes::Error; end
30
+
31
+ class UnsupportedFeatureError < Shoes::Error; end
32
+
33
+ class BadFilenameError < Shoes::Error; end
34
+
35
+ class UnknownEventsForClassError < Shoes::Error; end
36
+
37
+ class DoubleRegisteredShoesEventError < Shoes::Error; end
38
+ end
data/lib/shoes/log.rb CHANGED
@@ -8,7 +8,7 @@
8
8
  # If used alone, this will fail because the @instance is nil. It needs
9
9
  # an implementation to be plugged in.
10
10
 
11
- module Shoes
11
+ class Shoes
12
12
  LOG_LEVELS = [:debug, :info, :warn, :error, :fatal].freeze
13
13
 
14
14
  # Include this module to get a @log instance variable to log as your
@@ -28,7 +28,7 @@ module Shoes
28
28
  attr_reader :current_log_config
29
29
 
30
30
  def instance=(impl_object)
31
- raise(Shoes::Error, "Already have an instance for Shoes::Log!") if @instance
31
+ raise(Shoes::Errors::TooManyInstancesError, "Already have an instance for Shoes::Log!") if @instance
32
32
 
33
33
  @instance = impl_object
34
34
  end
@@ -0,0 +1,79 @@
1
+ module MarginHelper
2
+
3
+ def margin_parse(kwargs)
4
+
5
+ if kwargs[:margin]
6
+
7
+ if kwargs[:margin].is_a?(Numeric)
8
+
9
+ if !kwargs[:margin_top]
10
+ kwargs[:margin_top] = kwargs[:margin]
11
+ end
12
+ if !kwargs[:margin_bottom]
13
+ kwargs[:margin_bottom] = kwargs[:margin]
14
+ end
15
+ if !kwargs[:margin_left]
16
+ kwargs[:margin_left] = kwargs[:margin]
17
+ end
18
+ if !kwargs[:margin_right]
19
+ kwargs[:margin_right] = kwargs[:margin]
20
+ end
21
+
22
+ elsif kwargs[:margin].is_a?(Hash)
23
+
24
+ kwargs[:margin].each do |key,value|
25
+ kwargs[:"margin_#{key}"] = value
26
+ end
27
+
28
+ else
29
+ margin_props = kwargs[:margin].is_a?(String) ? kwargs[:margin].split(/\s+|\,|-/) : kwargs[:margin]
30
+ if margin_props.length == 1
31
+
32
+ if !kwargs[:margin_top]
33
+ kwargs[:margin_top] = margin_props[0]
34
+ end
35
+ if !kwargs[:margin_bottom]
36
+ kwargs[:margin_bottom] = margin_props[0]
37
+ end
38
+ if !kwargs[:margin_left]
39
+ kwargs[:margin_left] = margin_props[0]
40
+ end
41
+ if !kwargs[:margin_right]
42
+ kwargs[:margin_right] = margin_props[0]
43
+ end
44
+
45
+ elsif margin_props.length == 2
46
+
47
+ raise(Shoes::Errors::InvalidAttributeValueError, "Margin don't support 2-3 values as Array/string input for using 2-3 input you can use the hash input method like '{left:value, right:value, top:value, bottom:value}'")
48
+
49
+ elsif margin_props.length == 3
50
+
51
+ raise(Shoes::Errors::InvalidAttributeValueError, "Margin don't support 2-3 values as Array/string input for using 2-3 input you can use the hash input method like '{left:value,right:value,top:value,bottom:value}'")
52
+
53
+ else
54
+
55
+ if !kwargs[:margin_top]
56
+ kwargs[:margin_top] = margin_props[1]
57
+ end
58
+ if !kwargs[:margin_bottom]
59
+ kwargs[:margin_bottom] = margin_props[3]
60
+ end
61
+ if !kwargs[:margin_left]
62
+ kwargs[:margin_left] = margin_props[0]
63
+ end
64
+ if !kwargs[:margin_right]
65
+ kwargs[:margin_right] = margin_props[2]
66
+ end
67
+
68
+ end
69
+ end
70
+ kwargs[:margin] = nil
71
+ end
72
+ if kwargs["options"] && !kwargs[:margin] && !kwargs[:margin_left] && !kwargs[:margin_right] && !kwargs[:margin_top] && !kwargs[:margin_bottom]
73
+ kwargs[options].each do |key,value|
74
+ kwargs[key] = value
75
+ end
76
+ end
77
+ kwargs
78
+ end
79
+ end
@@ -0,0 +1,15 @@
1
+
2
+ class Range
3
+ def rand
4
+ conv = (Integer === self.end && Integer === self.begin ? :to_i : :to_f)
5
+ ((Kernel.rand * (self.end - self.begin)) + self.begin).send(conv)
6
+ end
7
+ end
8
+
9
+ unless Time.respond_to? :today
10
+ def Time.today
11
+ t = Time.now
12
+ t - (t.to_i % 86_400)
13
+ end
14
+ end
15
+
data/lib/shoes-spec.rb ADDED
@@ -0,0 +1,93 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Shoes
4
+ # A Scarpe-compatible display service can set Shoes::Spec.instance to
5
+ # a ShoesSpec testing class, and use it to run Shoes-Spec code.
6
+ # A Shoes application should never do this. It's intended to be used
7
+ # by display services.
8
+ module Spec
9
+ def self.instance
10
+ @instance
11
+ end
12
+
13
+ def self.instance=(spec_inst)
14
+ if @instance && @instance != spec_inst
15
+ raise "Lacci can only use a single ShoesSpec implementation at one time!"
16
+ end
17
+
18
+ @instance = spec_inst
19
+ end
20
+ end
21
+
22
+ # ShoesSpec testing objects can optionally inherit from this object,
23
+ # which shows the ShoesSpec testing API.
24
+ #
25
+ # @see {Shoes::Spec.instance=}
26
+ class SpecInstance
27
+ # Once a Shoes app has been created, this method can be called to
28
+ # execute Shoes-Spec testing code for that application. Shoes-Spec
29
+ # uses Minitest for most of its APIs, and Minitest generally reports
30
+ # results with a class name and test name. If those aren't passed
31
+ # explicitly, the SpecInstance can choose reasonable defaults.
32
+ #
33
+ # The test code should be set up to run automatically from the
34
+ # display service's existing hooks. For instance, the code might
35
+ # run in response to the first heartbeat, if the display service
36
+ # uses heartbeats.
37
+ #
38
+ # The test code will export assertion data in its native format.
39
+ # Multiple display services choose to use the Scarpe-Component
40
+ # for Minitest data export, which is straightforward to import
41
+ # into the Shoes-Spec test harness.
42
+ #
43
+ # @param code [String] the ShoesSpec code to execute
44
+ # @param class_name [String|NilClass] the Minitest class name for reporting or nil
45
+ # @param test_name [String|NilClass] the Minitest test name for reporting or nil
46
+ # @return [void]
47
+ def run_shoes_spec_test_code(code, class_name: nil, test_name: nil)
48
+ raise "Child class should override this!"
49
+ end
50
+ end
51
+
52
+ # ShoesSpec instances support finder methods like button() that return
53
+ # a proxy to the corresponding drawable. Those proxies should support
54
+ # standard Shoes::Drawable methods, including the ones appropriate to
55
+ # the same drawable object. They should also support certain other
56
+ # testing-specific methods like "trigger_click" that are used to
57
+ # simulate display-side events during testing.
58
+ #
59
+ # Keep in mind that a proxy will often be in a different process from
60
+ # the Shoes app. So the proxy can't portably return the object or
61
+ # display object, though it could possibly return another proxy for such
62
+ # a thing.
63
+ class SpecProxy
64
+ # The proxy will have finder methods for all drawables, such as
65
+ # button(), edit_line(), etc. How to document those?
66
+
67
+ # Trigger a click on a button or button-like drawable. Not every
68
+ # drawable will support this operation.
69
+ def trigger_click()
70
+ raise "Child class should override this!"
71
+ end
72
+
73
+ # Trigger a hover over a hoverable drawable. Not every
74
+ # drawable will support this operation. A drawable that supports
75
+ # hover should support leave and vice-versa.
76
+ def trigger_hover()
77
+ raise "Child class should override this!"
78
+ end
79
+
80
+ # Trigger ending hover over a hoverable drawable. Not every
81
+ # drawable will support this operation. A drawable that supports
82
+ # hover should support leave and vice-versa.
83
+ def trigger_leave()
84
+ raise "Child class should override this!"
85
+ end
86
+
87
+ # Trigger a change in value for a drawable like a list_box
88
+ # with multiple values.
89
+ def trigger_change(value)
90
+ raise "Child class should override this!"
91
+ end
92
+ end
93
+ end
data/lib/shoes.rb CHANGED
@@ -12,38 +12,51 @@ if RUBY_VERSION[0..2] < "3.2"
12
12
  exit(-1)
13
13
  end
14
14
 
15
- module Shoes; end
15
+ class Shoes; end
16
16
  class Shoes::Error < StandardError; end
17
+ require_relative "shoes/errors"
17
18
 
18
19
  require_relative "shoes/constants"
20
+ require_relative "shoes/ruby_extensions"
19
21
 
20
22
  # Shoes adds some top-level methods and constants that can be used everywhere. Kernel is where they go.
21
23
  module Kernel
22
24
  include Shoes::Constants
23
25
  end
24
26
 
25
- require_relative "shoes/log"
26
27
  require_relative "shoes/display_service"
28
+
29
+ # Pre-declare classes that get referenced outside their own require file
30
+ class Shoes::Drawable < Shoes::Linkable; end
31
+ class Shoes::Slot < Shoes::Drawable; end
32
+ class Shoes::Widget < Shoes::Slot; end
33
+
34
+ require_relative "shoes/log"
27
35
  require_relative "shoes/colors"
28
36
 
37
+ require_relative "shoes/builtins"
38
+
29
39
  require_relative "shoes/background"
30
- require_relative "shoes/border"
31
- require_relative "shoes/spacing"
32
40
 
33
- require_relative "shoes/widget"
41
+ require_relative "shoes/drawable"
34
42
  require_relative "shoes/app"
35
- require_relative "shoes/widgets"
43
+ require_relative "shoes/drawables"
36
44
 
37
45
  require_relative "shoes/download"
38
46
 
47
+ # No easy way to tell at this point whether
48
+ # we will later load Shoes-Spec code, e.g.
49
+ # by running a segmented app with test code.
50
+ require_relative "shoes-spec"
51
+
39
52
  # The module containing Shoes in all its glory.
40
53
  # Shoes is a platform-independent GUI library, designed to create
41
54
  # small visual applications in Ruby.
42
55
  #
43
- module Shoes
56
+ class Shoes
44
57
  class << self
45
58
  # Creates a Shoes app with a new window. The block parameter is used to create
46
- # widgets and set up handlers. Arguments are passed to Shoes::App.new internally.
59
+ # drawables and set up handlers. Arguments are passed to Shoes::App.new internally.
47
60
  #
48
61
  # @incompatibility In Shoes3, this method will return normally.
49
62
  # In Scarpe, after the block is executed, the method will not return and Scarpe
@@ -61,6 +74,7 @@ module Shoes
61
74
  # @param width [Integer] The new app window width
62
75
  # @param height [Integer] The new app window height
63
76
  # @param resizable [Boolean] Whether the app window should be resizeable
77
+ # @param features [Symbol,Array<Symbol>] Additional Shoes extensions requested by the app
64
78
  # @return [void]
65
79
  # @see Shoes::App#new
66
80
  def app(
@@ -68,9 +82,11 @@ module Shoes
68
82
  width: 480,
69
83
  height: 420,
70
84
  resizable: true,
85
+ features: [],
71
86
  &app_code_body
72
87
  )
73
- app = Shoes::App.new(title:, width:, height:, resizable:, &app_code_body)
88
+ f = [features].flatten # Make sure this is a list, not a single symbol
89
+ app = Shoes::App.new(title:, width:, height:, resizable:, features: f, &app_code_body)
74
90
  app.init
75
91
  app.run
76
92
  nil
@@ -81,11 +97,16 @@ module Shoes
81
97
  # more loaders, a Lacci-based display library can accept new file formats as
82
98
  # well, not just raw Shoes .rb files.
83
99
  #
84
- # @param path [String] The current-dir-relative path to the file
100
+ # @param relative_path [String] The current-dir-relative path to the file
85
101
  # @return [void]
86
102
  # @see Shoes.add_file_loader
87
103
  def run_app(relative_path)
88
104
  path = File.expand_path relative_path
105
+ dir = File.dirname(path)
106
+
107
+ # Shoes assumes we're starting from the app code's path
108
+ Dir.chdir(dir)
109
+
89
110
  loaded = false
90
111
  file_loaders.each do |loader|
91
112
  if loader.call(path)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lacci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Concetto Rudilosso
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-08-29 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2024-05-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: scarpe-components
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.4.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.4.0
14
28
  description:
15
29
  email:
16
30
  - marcoc.r@outlook.com
@@ -25,47 +39,60 @@ files:
25
39
  - lib/lacci/scarpe_cli.rb
26
40
  - lib/lacci/scarpe_core.rb
27
41
  - lib/lacci/version.rb
42
+ - lib/scarpe/niente.rb
43
+ - lib/scarpe/niente/app.rb
44
+ - lib/scarpe/niente/display_service.rb
45
+ - lib/scarpe/niente/drawable.rb
46
+ - lib/scarpe/niente/shoes_spec.rb
47
+ - lib/shoes-spec.rb
28
48
  - lib/shoes.rb
29
49
  - lib/shoes/app.rb
30
50
  - lib/shoes/background.rb
31
51
  - lib/shoes/border.rb
52
+ - lib/shoes/builtins.rb
53
+ - lib/shoes/changelog.rb
32
54
  - lib/shoes/colors.rb
33
55
  - lib/shoes/constants.rb
34
56
  - lib/shoes/display_service.rb
35
57
  - lib/shoes/download.rb
58
+ - lib/shoes/drawable.rb
59
+ - lib/shoes/drawables.rb
60
+ - lib/shoes/drawables/arc.rb
61
+ - lib/shoes/drawables/arrow.rb
62
+ - lib/shoes/drawables/border.rb
63
+ - lib/shoes/drawables/button.rb
64
+ - lib/shoes/drawables/check.rb
65
+ - lib/shoes/drawables/document_root.rb
66
+ - lib/shoes/drawables/edit_box.rb
67
+ - lib/shoes/drawables/edit_line.rb
68
+ - lib/shoes/drawables/flow.rb
69
+ - lib/shoes/drawables/font_helper.rb
70
+ - lib/shoes/drawables/image.rb
71
+ - lib/shoes/drawables/line.rb
72
+ - lib/shoes/drawables/link.rb
73
+ - lib/shoes/drawables/list_box.rb
74
+ - lib/shoes/drawables/oval.rb
75
+ - lib/shoes/drawables/para.rb
76
+ - lib/shoes/drawables/progress.rb
77
+ - lib/shoes/drawables/radio.rb
78
+ - lib/shoes/drawables/rect.rb
79
+ - lib/shoes/drawables/shape.rb
80
+ - lib/shoes/drawables/slot.rb
81
+ - lib/shoes/drawables/stack.rb
82
+ - lib/shoes/drawables/star.rb
83
+ - lib/shoes/drawables/subscription_item.rb
84
+ - lib/shoes/drawables/text_drawable.rb
85
+ - lib/shoes/drawables/video.rb
86
+ - lib/shoes/drawables/widget.rb
87
+ - lib/shoes/errors.rb
36
88
  - lib/shoes/log.rb
37
- - lib/shoes/spacing.rb
38
- - lib/shoes/widget.rb
39
- - lib/shoes/widgets.rb
40
- - lib/shoes/widgets/alert.rb
41
- - lib/shoes/widgets/arc.rb
42
- - lib/shoes/widgets/button.rb
43
- - lib/shoes/widgets/check.rb
44
- - lib/shoes/widgets/document_root.rb
45
- - lib/shoes/widgets/edit_box.rb
46
- - lib/shoes/widgets/edit_line.rb
47
- - lib/shoes/widgets/flow.rb
48
- - lib/shoes/widgets/font.rb
49
- - lib/shoes/widgets/image.rb
50
- - lib/shoes/widgets/line.rb
51
- - lib/shoes/widgets/link.rb
52
- - lib/shoes/widgets/list_box.rb
53
- - lib/shoes/widgets/para.rb
54
- - lib/shoes/widgets/radio.rb
55
- - lib/shoes/widgets/shape.rb
56
- - lib/shoes/widgets/slot.rb
57
- - lib/shoes/widgets/span.rb
58
- - lib/shoes/widgets/stack.rb
59
- - lib/shoes/widgets/star.rb
60
- - lib/shoes/widgets/subscription_item.rb
61
- - lib/shoes/widgets/text_widget.rb
62
- - lib/shoes/widgets/video.rb
89
+ - lib/shoes/margin_helper.rb
90
+ - lib/shoes/ruby_extensions.rb
63
91
  homepage: https://github.com/scarpe-team/scarpe
64
92
  licenses:
65
93
  - MIT
66
94
  metadata:
67
95
  homepage_uri: https://github.com/scarpe-team/scarpe
68
- source_code_uri: https://github.com/scarpe-team/scarpe
69
96
  changelog_uri: https://github.com/scarpe-team/scarpe/blob/main/CHANGELOG.md
70
97
  post_install_message:
71
98
  rdoc_options: []
@@ -82,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
109
  - !ruby/object:Gem::Version
83
110
  version: '0'
84
111
  requirements: []
85
- rubygems_version: 3.4.10
112
+ rubygems_version: 3.5.3
86
113
  signing_key:
87
114
  specification_version: 4
88
115
  summary: Lacci - a portable Shoes DSL with switchable display backends, part of Scarpe
data/lib/shoes/spacing.rb DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Shoes
4
- module Spacing
5
- def self.included(includer)
6
- includer.display_properties :margin, :padding, :margin_top, :margin_left, :margin_right, :margin_bottom, :options
7
- end
8
- end
9
- end