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.
- checksums.yaml +7 -0
- data/LICENSE +19 -0
- data/README.md +52 -32
- data/lib/guard/less.rb +45 -56
- data/lib/guard/less.rb.orig +139 -0
- data/lib/guard/less/templates/Guardfile +22 -2
- data/lib/guard/less/templates/Guardfile.orig +3 -0
- data/lib/guard/less/version.rb +1 -1
- data/lib/guard/less/version.rb.orig +5 -0
- metadata +38 -75
checksums.yaml
ADDED
@@ -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
|
1
|
+
# Guard::Less
|
2
|
+
|
3
|
+
[](http://badge.fury.io/rb/guard-less) [](https://travis-ci.org/guard/guard-less) [](https://gemnasium.com/guard/guard-less) [](https://codeclimate.com/github/guard/guard-less) [](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
|
-
|
16
|
+
```bash
|
17
|
+
gem install guard-less
|
18
|
+
```
|
12
19
|
|
13
20
|
Add an initial setup to your Guardfile with:
|
14
21
|
|
15
|
-
|
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
|
-
|
26
|
-
|
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
|
-
:
|
52
|
+
all_after_change: [true|false] # run on all files after any changed files
|
36
53
|
# default: true
|
37
54
|
|
38
|
-
:
|
55
|
+
all_on_start: [true|false] # run on all the files at startup
|
39
56
|
# default: true
|
40
57
|
|
41
|
-
:
|
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
|
-
:
|
47
|
-
|
48
|
-
|
49
|
-
|
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
|
-
|
62
|
-
|
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
|
-
|
109
|
+
## Author
|
110
|
+
|
111
|
+
[Brendan Erwin](https://github.com/brendanjerwin) ([@brendanjerwin](http://twitter.com/brendanjerwin), [brendanjerwin.com](http://brendanjerwin.com))
|
79
112
|
|
80
|
-
|
113
|
+
## Maintainer
|
81
114
|
|
82
|
-
|
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
|
-
|
91
|
-
included in all copies or substantial portions of the Software.
|
117
|
+
## Contributors
|
92
118
|
|
93
|
-
|
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)
|
data/lib/guard/less.rb
CHANGED
@@ -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 <
|
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
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
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
|
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
|
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
|
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 :
|
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
|
74
|
+
outfile << tree.to_css(compress: options[:compress], yuicompress: options[:yuicompress])
|
85
75
|
end
|
86
76
|
end
|
87
77
|
true
|
88
|
-
rescue
|
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
|
-
|
102
|
-
|
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
|
-
|
109
|
-
|
110
|
-
|
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
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
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
|
-
|
2
|
-
|
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
|
data/lib/guard/less/version.rb
CHANGED
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.
|
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:
|
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:
|
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:
|
26
|
+
version: '2.0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
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:
|
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: '
|
40
|
+
version: '1.2'
|
78
41
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
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: '
|
86
|
-
type: :
|
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: '
|
54
|
+
version: '2.3'
|
94
55
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
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: '
|
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: '
|
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
|
-
|
121
|
-
|
122
|
-
|
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:
|
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:
|
101
|
+
version: '0'
|
139
102
|
requirements: []
|
140
103
|
rubyforge_project:
|
141
|
-
rubygems_version:
|
104
|
+
rubygems_version: 2.4.3
|
142
105
|
signing_key:
|
143
|
-
specification_version:
|
106
|
+
specification_version: 4
|
144
107
|
summary: Guard gem for Less
|
145
108
|
test_files: []
|