guard-less 0.1.2 → 2.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4019276249c78b8420a421f4347bfd47673ba98f
4
+ data.tar.gz: 2ea5cdce379953d455af60e613bf0e67a7804cd0
5
+ SHA512:
6
+ metadata.gz: 7849747fc01004a686db16337af0d62796cbc7b5b50cb371e2cb9c2a0a1adb0a347fe87685a573bfed0dc0fe1090755e2ec678a38aa8cc24e8a746aa3e5a64d9
7
+ data.tar.gz: d55abb577b265d88e0ca3be5c9e44b75b88528a94a4ec33c7c265f1493bb9baa3c0c5e8c4784b90a2f597aa853ab85d22ac81fe70cbbb0a42c264010310ebcca
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (C) 2013 Brendan Erwin and contributors
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,19 +1,29 @@
1
- # Guard-Less
1
+ # Guard::Less
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/guard-less.png)](http://badge.fury.io/rb/guard-less) [![Build Status](https://travis-ci.org/guard/guard-less.png?branch=master)](https://travis-ci.org/guard/guard-less) [![Dependency Status](https://gemnasium.com/guard/guard-less.png)](https://gemnasium.com/guard/guard-less) [![Code Climate](https://codeclimate.com/github/guard/guard-less.png)](https://codeclimate.com/github/guard/guard-less) [![Coverage Status](https://coveralls.io/repos/guard/guard-less/badge.png?branch=master)](https://coveralls.io/r/guard/guard-less)
2
4
 
3
5
  A guard extension that compiles `.less` files to `.css` files when changed.
4
6
 
7
+ * Compatible with Less ~> 2.3.
8
+ * Tested against Ruby 1.9.3, 2.0.0, Rubinius & JRuby (1.9 mode only).
9
+
5
10
  ## Install
6
11
 
7
12
  You will need to have [Guard](https://github.com/guard/guard) first.
8
13
 
9
14
  Install the gem with:
10
15
 
11
- gem install guard-less
16
+ ```bash
17
+ gem install guard-less
18
+ ```
12
19
 
13
20
  Add an initial setup to your Guardfile with:
14
21
 
15
- guard init less
22
+ ```bash
23
+ guard init less
24
+ ```
16
25
 
26
+ Please note that you also have to install therubyracer (or therubyrhino when you are running JRuby).
17
27
 
18
28
  ## Usage
19
29
 
@@ -22,8 +32,15 @@ Please read [Guard usage doc](https://github.com/guard/guard#readme).
22
32
  ## Guardfile
23
33
 
24
34
  ```ruby
25
- guard 'less', :all_on_start => true, :all_after_change => true do
26
- watch(%r{^.*\.less$})
35
+ less_options = {
36
+ all_on_start: true,
37
+ all_after_change: true,
38
+ patterns: [/^.+\.less$/],
39
+ output: 'public/stylesheets'
40
+ }
41
+
42
+ guard :less, less_options do
43
+ less_options[:patterns].each { |pattern| watch(pattern) }
27
44
  end
28
45
  ```
29
46
 
@@ -32,34 +49,48 @@ Please read [Guard doc](https://github.com/guard/guard#readme) for more info abo
32
49
  ## Options
33
50
 
34
51
  ```ruby
35
- :all_after_change => [true|false] # run on all files after any changed files
52
+ all_after_change: [true|false] # run on all files after any changed files
36
53
  # default: true
37
54
 
38
- :all_on_start => [true|false] # run on all the files at startup
55
+ all_on_start: [true|false] # run on all the files at startup
39
56
  # default: true
40
57
 
41
- :output => 'relative/path' # base directory for output CSS files; if unset,
58
+ output: 'relative/path' # base directory for output CSS files; if unset,
42
59
  # .css files are generated in the same directories
43
60
  # as their corresponding .less file
44
61
  # default: nil
45
62
 
46
- :import_paths => ['lib/styles'] # an array of additional load paths to pass to the
47
- # LESS parser, used when resolving `@import`
48
- # statements
49
- # default: [] (see below)
63
+ import_paths: ['lib/styles'] # an array of additional load paths to pass to the
64
+ # LESS parser, used when resolving `@import`
65
+ # statements
66
+ # default: [] (see below)
67
+
68
+ compress: true # minify output
69
+
70
+ yuicompress: true # minify output using yui
71
+
72
+ patterns: [] # array of patterns for matching watched/processed files
50
73
  ```
51
74
 
52
75
  ### Output option
53
76
 
54
77
  By default, `.css` files will be generated in the same directories as their
55
78
  corresponding `.less` files (partials beginning with `_` are always excluded).
79
+
56
80
  To customize the output location, pass the `:output` option as described above,
57
81
  and be sure to use a match group in the regular expression in your watch to
58
82
  capture nested structure that will be preserved, i.e.
59
83
 
60
84
  ```ruby
61
- guard 'less', :output => 'public/stylesheets' do
62
- watch(%r{^app/stylesheets/(.+\.less)$})
85
+ less_options = {
86
+ all_on_start: true,
87
+ all_after_change: true,
88
+ patterns: [/^app/stylesheets/(.+\.less)$/],
89
+ output: 'public/stylesheets'
90
+ }
91
+
92
+ guard :less, less_options do
93
+ less_options[:patterns].each { |pattern| watch(pattern) }
63
94
  end
64
95
  ```
65
96
 
@@ -75,25 +106,14 @@ additional paths with this option so that, for the `['lib/styles']` example, a
75
106
  file at `lib/styles/reset.less` could be imported without a qualified path as
76
107
  `@import 'reset'`.
77
108
 
78
- # License
109
+ ## Author
110
+
111
+ [Brendan Erwin](https://github.com/brendanjerwin) ([@brendanjerwin](http://twitter.com/brendanjerwin), [brendanjerwin.com](http://brendanjerwin.com))
79
112
 
80
- **Copyright (c) 2011 Brendan Erwin and contributors**
113
+ ## Maintainer
81
114
 
82
- Permission is hereby granted, free of charge, to any person obtaining
83
- a copy of this software and associated documentation files (the
84
- "Software"), to deal in the Software without restriction, including
85
- without limitation the rights to use, copy, modify, merge, publish,
86
- distribute, sublicense, and/or sell copies of the Software, and to
87
- permit persons to whom the Software is furnished to do so, subject to
88
- the following conditions:
115
+ [Rémy Coutable](https://github.com/rymai)
89
116
 
90
- The above copyright notice and this permission notice shall be
91
- included in all copies or substantial portions of the Software.
117
+ ## Contributors
92
118
 
93
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
94
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
95
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
96
- NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
97
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
98
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
99
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
119
+ [https://github.com/guard/guard-less/graphs/contributors](https://github.com/guard/guard-less/graphs/contributors)
@@ -1,49 +1,39 @@
1
- require 'guard'
2
- require 'guard/guard'
1
+ require 'guard/compat/plugin'
3
2
  require 'less'
4
3
 
5
- require File.dirname(__FILE__) + "/less/version"
6
-
7
4
  module Guard
8
- class Less < Guard
5
+ class Less < Plugin
6
+ require 'guard/less/version'
9
7
 
10
- # ================
11
- # = Guard method =
12
- # ================
13
- def initialize(watchers=[], options={})
8
+ def initialize(options = {})
14
9
  defaults = {
15
- :all_after_change => true,
16
- :all_on_start => true,
17
- :output => nil,
18
- :import_paths => [],
19
- :compress => false
10
+ all_after_change: true,
11
+ all_on_start: true,
12
+ output: nil,
13
+ import_paths: [],
14
+ compress: false,
15
+ patterns: [],
16
+ yuicompress: false
20
17
  }
21
-
22
- super(watchers, defaults.merge(options))
18
+ super(defaults.merge(options))
23
19
  end
24
20
 
25
21
  def start
26
- UI.info "Guard::Less #{LessVersion::VERSION} is on the job!"
22
+ Compat::UI.info "Guard::Less #{LessVersion::VERSION} is on the job!"
27
23
  run_all if options[:all_on_start]
28
24
  end
29
25
 
30
26
  # Call with Ctrl-/ signal
31
27
  # This method should be principally used for long action like running all specs/tests/...
32
28
  def run_all
33
- UI.info "Guard::Less: compiling all files"
34
- patterns = watchers.map { |w| w.pattern }
29
+ Compat::UI.info 'Guard::Less: compiling all files'
35
30
  files = Dir.glob('**/*.*')
36
- paths = []
37
- files.each do |file|
38
- patterns.each do |pattern|
39
- paths << file if file.match(Regexp.new(pattern))
40
- end
41
- end
31
+ paths = Compat.matching_files(self, files).uniq
42
32
  run(paths)
43
33
  end
44
34
 
45
35
  # Call on file(s) modifications
46
- def run_on_change(paths)
36
+ def run_on_changes(paths)
47
37
  options[:all_after_change] ? run_all : run(paths)
48
38
  end
49
39
 
@@ -54,17 +44,17 @@ module Guard
54
44
  stylesheets.each do |lessfile|
55
45
  # Skip partials
56
46
  basename = File.basename(lessfile)
57
- next if basename[0,1] == "_"
47
+ next if basename[0, 1] == '_'
58
48
 
59
49
  cssfile = File.join(destination, basename.gsub(/\.less$/, '.css'))
60
50
 
61
51
  # Just in case
62
52
  if cssfile == lessfile
63
- UI.info "Guard::Less: Skipping #{lessfile} since the output would overwrite the original file"
53
+ Compat::UI.info "Guard::Less: Skipping #{lessfile} since output and source are the same"
64
54
  elsif mtime(cssfile) >= mtime_including_imports(lessfile)
65
- UI.info "Guard::Less: Skipping #{lessfile} because #{cssfile} is already up-to-date"
55
+ Compat::UI.info "Guard::Less: Skipping #{lessfile} because #{cssfile} is already up-to-date"
66
56
  else
67
- UI.info "Guard::Less: #{lessfile} -> #{cssfile}\n"
57
+ Compat::UI.info "Guard::Less: #{lessfile} -> #{cssfile}\n"
68
58
  FileUtils.mkdir_p(File.expand_path(destination))
69
59
  compile(lessfile, cssfile)
70
60
  end
@@ -77,16 +67,16 @@ module Guard
77
67
  # Parse the source lessfile and write to target cssfile
78
68
  def compile(lessfile, cssfile)
79
69
  import_paths = options[:import_paths].unshift(File.dirname(lessfile))
80
- parser = ::Less::Parser.new :paths => import_paths, :filename => lessfile
81
- File.open(lessfile,'r') do |infile|
82
- File.open(cssfile,'w') do |outfile|
70
+ parser = ::Less::Parser.new paths: import_paths, filename: lessfile
71
+ File.open(lessfile, 'r') do |infile|
72
+ File.open(cssfile, 'w') do |outfile|
83
73
  tree = parser.parse(infile.read)
84
- outfile << tree.to_css(:compress => options[:compress])
74
+ outfile << tree.to_css(compress: options[:compress], yuicompress: options[:yuicompress])
85
75
  end
86
76
  end
87
77
  true
88
- rescue Exception => e
89
- UI.info "Guard::Less: Compiling #{lessfile} failed with message: #{e.message}"
78
+ rescue StandardError => e
79
+ Compat::UI.info "Guard::Less: Compiling #{lessfile} failed with message: #{e.message}"
90
80
  false
91
81
  end
92
82
 
@@ -98,19 +88,15 @@ module Guard
98
88
  def nested_directory_map(paths)
99
89
  directories = {}
100
90
 
101
- watchers.product(paths).each do |watcher, path|
102
- if matches = path.match(watcher.pattern)
103
- target = options[:output] || File.dirname(path)
104
- if subpath = matches[1]
105
- target = File.join(target, File.dirname(subpath)).gsub(/\/\.$/, '')
106
- end
91
+ options[:patterns].product(paths).each do |pattern, path|
92
+ next unless (matches = path.match(pattern))
107
93
 
108
- if directories[target]
109
- directories[target] << path
110
- else
111
- directories[target] = [path]
112
- end
94
+ target = options[:output] || File.dirname(path)
95
+ if (subpath = matches[1])
96
+ target = File.join(target, File.dirname(subpath)).gsub(/\/\.$/, '')
113
97
  end
98
+
99
+ (directories[target] ||= []) << path
114
100
  end
115
101
 
116
102
  directories
@@ -128,17 +114,20 @@ module Guard
128
114
  def mtime_including_imports(file)
129
115
  mtimes = [mtime(file)]
130
116
  File.readlines(file).each do |line|
131
- if line =~ /^\s*@import ['"]([^'"]+)/
132
- imported = File.join(File.dirname(file), $1)
133
- mtimes << if imported =~ /\.le?ss$/ # complete path given ?
134
- mtime(imported)
135
- else # we need to add .less or .lss
136
- [mtime("#{imported}.less"), mtime("#{imported}.lss")].max
137
- end
138
- end
117
+ next unless line =~ /^\s*@import ['"]([^'"]+)/
118
+
119
+ imported = File.join(File.dirname(file), Regexp.last_match[1])
120
+
121
+ # complete path given ?
122
+ mod_time = if imported =~ /\.le?ss$/
123
+ mtime(imported)
124
+ else
125
+ # we need to add .less or .lss
126
+ [mtime("#{imported}.less"), mtime("#{imported}.lss")].max
127
+ end
128
+ mtimes << mod_time
139
129
  end
140
130
  mtimes.max
141
131
  end
142
-
143
132
  end
144
133
  end
@@ -0,0 +1,139 @@
1
+ require 'guard'
2
+ require 'guard/plugin'
3
+ require 'less'
4
+
5
+ module Guard
6
+ class Less < Plugin
7
+
8
+ require 'guard/less/version'
9
+
10
+ # ================
11
+ # = Guard method =
12
+ # ================
13
+ def initialize(options = {})
14
+ defaults = {
15
+ all_after_change: true,
16
+ all_on_start: true,
17
+ output: nil,
18
+ import_paths: [],
19
+ compress: false,
20
+ yuicompress: false,
21
+ }
22
+
23
+ super(defaults.merge(options))
24
+ end
25
+
26
+ def start
27
+ UI.info "Guard::Less #{LessVersion::VERSION} is on the job!"
28
+ run_all if options[:all_on_start]
29
+ end
30
+
31
+ # Call with Ctrl-/ signal
32
+ # This method should be principally used for long action like running all specs/tests/...
33
+ def run_all
34
+ UI.info "Guard::Less: compiling all files"
35
+ files = Dir.glob('**/*.*')
36
+ paths = Watcher.match_files(self, files).uniq
37
+ run(paths)
38
+ end
39
+
40
+ # Call on file(s) modifications
41
+ def run_on_changes(paths)
42
+ options[:all_after_change] ? run_all : run(paths)
43
+ end
44
+
45
+ def run(paths)
46
+ directories = nested_directory_map(paths)
47
+
48
+ directories.each do |destination, stylesheets|
49
+ stylesheets.each do |lessfile|
50
+ # Skip partials
51
+ basename = File.basename(lessfile)
52
+ next if basename[0,1] == "_"
53
+
54
+ cssfile = File.join(destination, basename.gsub(/\.less$/, '.css'))
55
+
56
+ # Just in case
57
+ if cssfile == lessfile
58
+ UI.info "Guard::Less: Skipping #{lessfile} since the output would overwrite the original file"
59
+ elsif mtime(cssfile) >= mtime_including_imports(lessfile)
60
+ UI.info "Guard::Less: Skipping #{lessfile} because #{cssfile} is already up-to-date"
61
+ else
62
+ UI.info "Guard::Less: #{lessfile} -> #{cssfile}\n"
63
+ FileUtils.mkdir_p(File.expand_path(destination))
64
+ compile(lessfile, cssfile)
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ private
71
+
72
+ # Parse the source lessfile and write to target cssfile
73
+ def compile(lessfile, cssfile)
74
+ import_paths = options[:import_paths].unshift(File.dirname(lessfile))
75
+ parser = ::Less::Parser.new paths: import_paths, filename: lessfile
76
+ File.open(lessfile,'r') do |infile|
77
+ File.open(cssfile,'w') do |outfile|
78
+ tree = parser.parse(infile.read)
79
+ outfile << tree.to_css(compress: options[:compress], yuicompress: options[:yuicompress])
80
+ end
81
+ end
82
+ true
83
+ rescue Exception => e
84
+ UI.info "Guard::Less: Compiling #{lessfile} failed with message: #{e.message}"
85
+ false
86
+ end
87
+
88
+ # Creates a hash of changed files keyed by their target nested directory,
89
+ # which is based on either the original source directory or the :output
90
+ # option, plus the regex match group in a watcher like:
91
+ #
92
+ # %r{^app/stylesheets/(.+\.less)$}
93
+ def nested_directory_map(paths)
94
+ directories = {}
95
+
96
+ watchers.product(paths).each do |watcher, path|
97
+ if matches = path.match(watcher.pattern)
98
+ target = options[:output] || File.dirname(path)
99
+ if subpath = matches[1]
100
+ target = File.join(target, File.dirname(subpath)).gsub(/\/\.$/, '')
101
+ end
102
+
103
+ if directories[target]
104
+ directories[target] << path
105
+ else
106
+ directories[target] = [path]
107
+ end
108
+ end
109
+ end
110
+
111
+ directories
112
+ end
113
+
114
+ # mtime checking borrowed from the old official LESS Rails plugin:
115
+ # https://github.com/cloudhead/more
116
+ def mtime(file)
117
+ return 0 unless File.file?(file)
118
+ File.mtime(file).to_i
119
+ end
120
+
121
+ # consider imports for mtime
122
+ # just 1 level deep so we do not get any looping/nesting errors
123
+ def mtime_including_imports(file)
124
+ mtimes = [mtime(file)]
125
+ File.readlines(file).each do |line|
126
+ if line =~ /^\s*@import ['"]([^'"]+)/
127
+ imported = File.join(File.dirname(file), $1)
128
+ mtimes << if imported =~ /\.le?ss$/ # complete path given ?
129
+ mtime(imported)
130
+ else # we need to add .less or .lss
131
+ [mtime("#{imported}.less"), mtime("#{imported}.lss")].max
132
+ end
133
+ end
134
+ end
135
+ mtimes.max
136
+ end
137
+
138
+ end
139
+ end
@@ -1,3 +1,23 @@
1
- guard 'less', :all_on_start => true, :all_after_change => true do
2
- watch(%r{^.+\.less$})
1
+ # NOTE: the subpath hack using a regexp group no longer works
2
+ # - instead, use the patterns option, e.g. change:
3
+ #
4
+ # guard :less do
5
+ # watch /^foo\/(.+)\.less/
6
+ # end
7
+ #
8
+ # into:
9
+ #
10
+ # patterns = [/^foo\/(.+)\.less/]
11
+ # guard :less, patterns: patterns do
12
+ # patterns.each { |pattern| watch(pattern) }
13
+ # end
14
+
15
+ less_options = {
16
+ all_on_start: true,
17
+ all_after_change: true,
18
+ patterns: [/^.+\.less$/]
19
+ }
20
+
21
+ guard :less, less_options do
22
+ less_options[:patterns].each { |pattern| watch(pattern) }
3
23
  end
@@ -0,0 +1,3 @@
1
+ guard :less, all_on_start: true, all_after_change: true do
2
+ watch %r{^.+\.less$}
3
+ end
@@ -1,5 +1,5 @@
1
1
  module Guard
2
2
  module LessVersion
3
- VERSION = "0.1.2"
3
+ VERSION = '2.0.0'
4
4
  end
5
5
  end
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ module LessVersion
3
+ VERSION = '1.0.0'
4
+ end
5
+ end
metadata CHANGED
@@ -1,112 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-less
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
5
- prerelease:
4
+ version: 2.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Brendan Erwin
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-04-17 00:00:00.000000000 Z
11
+ date: 2015-01-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: guard
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 0.2.2
19
+ version: '2.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 0.2.2
26
+ version: '2.0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: less
28
+ name: guard-compat
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: 2.1.0
33
+ version: '1.2'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 2.1.0
46
- - !ruby/object:Gem::Dependency
47
- name: bundler
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '1.0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
62
- - !ruby/object:Gem::Dependency
63
- name: fakefs
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '0.3'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
37
  requirements:
75
- - - ~>
38
+ - - "~>"
76
39
  - !ruby/object:Gem::Version
77
- version: '0.3'
40
+ version: '1.2'
78
41
  - !ruby/object:Gem::Dependency
79
- name: guard-rspec
42
+ name: less
80
43
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
44
  requirements:
83
- - - ~>
45
+ - - "~>"
84
46
  - !ruby/object:Gem::Version
85
- version: '0.4'
86
- type: :development
47
+ version: '2.3'
48
+ type: :runtime
87
49
  prerelease: false
88
50
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
51
  requirements:
91
- - - ~>
52
+ - - "~>"
92
53
  - !ruby/object:Gem::Version
93
- version: '0.4'
54
+ version: '2.3'
94
55
  - !ruby/object:Gem::Dependency
95
- name: rspec
56
+ name: bundler
96
57
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
58
  requirements:
99
- - - ~>
59
+ - - ">="
100
60
  - !ruby/object:Gem::Version
101
- version: '2.6'
61
+ version: '0'
102
62
  type: :development
103
63
  prerelease: false
104
64
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
65
  requirements:
107
- - - ~>
66
+ - - ">="
108
67
  - !ruby/object:Gem::Version
109
- version: '2.6'
68
+ version: '0'
110
69
  description: Guard::Less automatically compiles less (like lessc --watch)
111
70
  email:
112
71
  - brendanjerwin@gmail.com
@@ -114,32 +73,36 @@ executables: []
114
73
  extensions: []
115
74
  extra_rdoc_files: []
116
75
  files:
76
+ - LICENSE
77
+ - README.md
78
+ - lib/guard/less.rb
79
+ - lib/guard/less.rb.orig
117
80
  - lib/guard/less/templates/Guardfile
81
+ - lib/guard/less/templates/Guardfile.orig
118
82
  - lib/guard/less/version.rb
119
- - lib/guard/less.rb
120
- - README.md
121
- homepage: https://github.com/guard/guard-less
122
- licenses: []
83
+ - lib/guard/less/version.rb.orig
84
+ homepage: https://rubygems.org/gems/guard-less
85
+ licenses:
86
+ - MIT
87
+ metadata: {}
123
88
  post_install_message:
124
89
  rdoc_options: []
125
90
  require_paths:
126
91
  - lib
127
92
  required_ruby_version: !ruby/object:Gem::Requirement
128
- none: false
129
93
  requirements:
130
- - - ! '>='
94
+ - - ">="
131
95
  - !ruby/object:Gem::Version
132
- version: '0'
96
+ version: 1.9.2
133
97
  required_rubygems_version: !ruby/object:Gem::Requirement
134
- none: false
135
98
  requirements:
136
- - - ! '>='
99
+ - - ">="
137
100
  - !ruby/object:Gem::Version
138
- version: 1.3.6
101
+ version: '0'
139
102
  requirements: []
140
103
  rubyforge_project:
141
- rubygems_version: 1.8.21
104
+ rubygems_version: 2.4.3
142
105
  signing_key:
143
- specification_version: 3
106
+ specification_version: 4
144
107
  summary: Guard gem for Less
145
108
  test_files: []