guard-less 0.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []