sasstool 0.2.2 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef0bcf79ec7eb20aa6311274eeb54b1edf592a50db834554772f540f7cff8f81
4
- data.tar.gz: aba3d1af516c8509486331de1028ae2de8cbce1490b6ff600c9bb9f609917289
3
+ metadata.gz: 377aca589e5c58b3d7e119c2984dc03e3253887e0a880a60cb761008f9dcf035
4
+ data.tar.gz: b8f0c02756faf00b06f121f567c814e82952ef4f1490dbcefb4a02a18d27d339
5
5
  SHA512:
6
- metadata.gz: 5c390ac0c5673e07cbf4c24bb24d9d076b221b41eeb375466d082a82c90ad31c21355bb074362646a0989d823769c442de87877040c35443c749878132dfb32a
7
- data.tar.gz: c460510b330d6600e5b3134cfa5e861f72db2126a233aef93293d74ab93c10d7e25cef7dccf67e1868a4eea04f1f1c82857af8dca5bfdb2356175028766b12ff
6
+ metadata.gz: 1ef5df69b782a307c7404014e2135080afbc471d514ee590b3453d93cfbbc1f70a913af2f05957d55e8a96ed1f25f5c305bb0de3163afc0844be14ca8ab37d97
7
+ data.tar.gz: 26d232f5c209ad2ae11cd57c3ea9ff24b952e24ba10a1379b661ca8d49abd8434508fca76669397799a8366b4e5224c1b366ea5bcb371dfc4df964120451237a
data/README.md CHANGED
@@ -1,15 +1,7 @@
1
1
  # Sasstool
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/sasstool.svg)](https://badge.fury.io/rb/sasstool)
4
- [![Build Status](https://github.com/DannyBen/sasstool/workflows/Test/badge.svg)](https://github.com/DannyBen/sasstool/actions?query=workflow%3ATest)
5
- [![Maintainability](https://api.codeclimate.com/v1/badges/4cef96eefe9287ab6c90/maintainability)](https://codeclimate.com/github/DannyBen/sasstool/maintainability)
6
-
7
- ---
8
-
9
3
  Sass (SassC) command line renderer with globbing import support.
10
4
 
11
- ---
12
-
13
5
  ## Installation
14
6
 
15
7
  $ gem install sasstool
data/bin/sasstool CHANGED
@@ -9,6 +9,6 @@ begin
9
9
  exit router.run ARGV
10
10
  rescue => e
11
11
  puts e.backtrace.reverse if ENV['DEBUG']
12
- say! "!txtred!#{e.class}: #{e.message}"
12
+ say! "r`#{e.class}: #{e.message}`"
13
13
  exit 1
14
- end
14
+ end
data/lib/sasstool/cli.rb CHANGED
@@ -6,7 +6,7 @@ module Sasstool
6
6
  class CLI
7
7
  def self.router
8
8
  MisterBin::Runner.new version: VERSION,
9
- header: "SASS Tool",
9
+ header: 'SASS Tool',
10
10
  handler: Command
11
11
  end
12
12
  end
@@ -1,36 +1,36 @@
1
- require 'filewatcher'
1
+ require 'listen'
2
2
 
3
3
  module Sasstool
4
4
  class Command < MisterBin::Command
5
- help "sasstool - SASS Command Line Renderer"
6
- usage "sasstool INFILE [OUTDIR --watch]"
7
- usage "sasstool (-h|--help)"
8
-
9
- param "INFILE", "Path to SCSS or SASS input file"
10
- param "OUTDIR", "Path to CSS output directory. Can also be provided by an environment variable"
11
- option "-w, --watch", "Watch the directory of the input file, and save on change"
12
- environment "SASSTOOL_OUTDIR", "Path to CSS output directory"
13
-
14
- example "sasstool style/main.scss public/css"
5
+ help 'sasstool - SASS Command Line Renderer'
6
+ usage 'sasstool INFILE [OUTDIR --watch]'
7
+ usage 'sasstool (-h|--help)'
8
+
9
+ param 'INFILE', 'Path to SCSS or SASS input file'
10
+ param 'OUTDIR', 'Path to CSS output directory. Can also be provided by an environment variable'
11
+ option '-w, --watch', 'Watch the directory of the input file, and save on change'
12
+ environment 'SASSTOOL_OUTDIR', 'Path to CSS output directory'
13
+
14
+ example 'sasstool style/main.scss public/css'
15
15
 
16
16
  def run
17
- save
17
+ save
18
18
  watch if args['--watch']
19
19
  end
20
20
 
21
21
  private
22
22
 
23
23
  def watch
24
- dir = File.dirname args['INFILE']
25
- glob = "#{dir}/**/*.s[ca]ss"
26
- Filewatcher.new(glob).watch do
27
- save
28
- end
24
+ dir = @dir ||= File.dirname(args['INFILE'])
25
+ glob = /\.s[ca]ss\z/
26
+ l = listener(dir, glob) { save }
27
+ l.start
28
+ block_if_needed
29
29
  end
30
30
 
31
31
  def save
32
32
  renderer.save outdir
33
- say "Saved"
33
+ say 'Saved'
34
34
  end
35
35
 
36
36
  def renderer
@@ -39,8 +39,18 @@ module Sasstool
39
39
 
40
40
  def outdir
41
41
  result = args['OUTDIR'] || ENV['SASSTOOL_OUTDIR']
42
- raise ArgumentError, "Please provide an output directory" unless result
42
+ raise ArgumentError, 'Please provide an output directory' unless result
43
+
43
44
  result
44
45
  end
46
+
47
+ def listener(dir, glob, &)
48
+ Listen.to(dir, force_polling: true, latency: 3, only: glob, &)
49
+ end
50
+
51
+ def block_if_needed
52
+ @block_thread ||= Thread.current
53
+ @block_thread.join if @block_thread != Thread.current
54
+ end
45
55
  end
46
56
  end
@@ -1,11 +1,12 @@
1
1
  module Sasstool
2
2
  class Importer < SassC::Importer
3
3
  def imports(path, parent_path)
4
- if path.include? "*"
4
+ if path.include? '*'
5
5
  dir = File.dirname parent_path
6
6
  glob = "#{dir}/#{path}"
7
+ extensions = ['.scss', '.sass']
7
8
  files = Dir[glob].select do |file|
8
- ['.scss', '.sass'].include? File.extname(file)
9
+ extensions.include? File.extname(file)
9
10
  end
10
11
 
11
12
  files.map do |file|
@@ -16,4 +17,4 @@ module Sasstool
16
17
  end
17
18
  end
18
19
  end
19
- end
20
+ end
@@ -3,6 +3,7 @@ require 'forwardable'
3
3
  module Sasstool
4
4
  class Renderer
5
5
  extend Forwardable
6
+
6
7
  def_delegators :engine, :render, :source_map
7
8
  attr_reader :path
8
9
 
@@ -44,11 +45,11 @@ module Sasstool
44
45
 
45
46
  def options
46
47
  @options ||= {
47
- source_map_file: "#{path.gsub(/s[ca]ss$/, 'css')}.map",
48
+ source_map_file: "#{path.gsub(/s[ca]ss$/, 'css')}.map",
48
49
  source_map_contents: true,
49
- style: :nested,
50
- importer: Importer,
51
- filename: path
50
+ style: :nested,
51
+ importer: Importer,
52
+ filename: path,
52
53
  }
53
54
  end
54
55
 
@@ -57,4 +58,3 @@ module Sasstool
57
58
  end
58
59
  end
59
60
  end
60
-
@@ -1,3 +1,3 @@
1
1
  module Sasstool
2
- VERSION = "0.2.2"
3
- end
2
+ VERSION = '0.3.0'
3
+ end
data/lib/sasstool.rb CHANGED
@@ -1,8 +1,3 @@
1
1
  require 'sassc'
2
2
  require 'sasstool/importer'
3
3
  require 'sasstool/renderer'
4
-
5
- if ENV['BYEBUG']
6
- require 'byebug'
7
- require 'lp'
8
- end
metadata CHANGED
@@ -1,71 +1,84 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sasstool
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-09-09 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: mister_bin
13
+ name: colsole
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '0.7'
18
+ version: '1.0'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '0.7'
25
+ version: '1.0'
27
26
  - !ruby/object:Gem::Dependency
28
- name: colsole
27
+ name: listen
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '0.7'
32
+ version: '3.9'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '0.7'
39
+ version: '3.9'
41
40
  - !ruby/object:Gem::Dependency
42
- name: sassc
41
+ name: logger
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '2.4'
46
+ version: '1.7'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '2.4'
53
+ version: '1.7'
55
54
  - !ruby/object:Gem::Dependency
56
- name: filewatcher
55
+ name: mister_bin
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: '2.0'
60
+ version: '0.7'
62
61
  type: :runtime
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: '2.0'
67
+ version: '0.7'
68
+ - !ruby/object:Gem::Dependency
69
+ name: sassc
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '2.4'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '2.4'
69
82
  description: Sass command line renderer with globbing import support
70
83
  email: db@dannyben.com
71
84
  executables:
@@ -84,8 +97,8 @@ files:
84
97
  homepage: https://github.com/dannyben/sasstool
85
98
  licenses:
86
99
  - MIT
87
- metadata: {}
88
- post_install_message:
100
+ metadata:
101
+ rubygems_mfa_required: 'true'
89
102
  rdoc_options: []
90
103
  require_paths:
91
104
  - lib
@@ -93,15 +106,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
106
  requirements:
94
107
  - - ">="
95
108
  - !ruby/object:Gem::Version
96
- version: 2.6.0
109
+ version: '3.2'
97
110
  required_rubygems_version: !ruby/object:Gem::Requirement
98
111
  requirements:
99
112
  - - ">="
100
113
  - !ruby/object:Gem::Version
101
114
  version: '0'
102
115
  requirements: []
103
- rubygems_version: 3.3.14
104
- signing_key:
116
+ rubygems_version: 4.0.3
105
117
  specification_version: 4
106
118
  summary: Sass command line renderer
107
119
  test_files: []