sass 3.4.25 → 3.5.0.pre.rc.1
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 +4 -4
- data/.yardopts +1 -1
- data/README.md +1 -1
- data/Rakefile +13 -157
- data/VERSION +1 -1
- data/VERSION_DATE +1 -1
- data/VERSION_NAME +1 -1
- data/lib/sass.rb +3 -10
- data/lib/sass/cache_stores/filesystem.rb +1 -1
- data/lib/sass/css.rb +2 -3
- data/lib/sass/engine.rb +46 -32
- data/lib/sass/environment.rb +27 -6
- data/lib/sass/error.rb +5 -5
- data/lib/sass/exec/base.rb +3 -12
- data/lib/sass/features.rb +1 -0
- data/lib/sass/importers/filesystem.rb +2 -2
- data/lib/sass/plugin.rb +1 -1
- data/lib/sass/plugin/compiler.rb +21 -51
- data/lib/sass/plugin/configuration.rb +1 -1
- data/lib/sass/plugin/rack.rb +3 -3
- data/lib/sass/plugin/staleness_checker.rb +3 -3
- data/lib/sass/railtie.rb +1 -1
- data/lib/sass/script.rb +3 -3
- data/lib/sass/script/functions.rb +238 -47
- data/lib/sass/script/lexer.rb +8 -6
- data/lib/sass/script/parser.rb +76 -75
- data/lib/sass/script/tree/funcall.rb +35 -30
- data/lib/sass/script/tree/list_literal.rb +23 -8
- data/lib/sass/script/tree/map_literal.rb +2 -2
- data/lib/sass/script/tree/node.rb +2 -10
- data/lib/sass/script/tree/operation.rb +16 -50
- data/lib/sass/script/value.rb +2 -0
- data/lib/sass/script/value/arg_list.rb +1 -1
- data/lib/sass/script/value/base.rb +20 -3
- data/lib/sass/script/value/callable.rb +25 -0
- data/lib/sass/script/value/color.rb +10 -10
- data/lib/sass/script/value/function.rb +19 -0
- data/lib/sass/script/value/helpers.rb +16 -7
- data/lib/sass/script/value/list.rb +33 -12
- data/lib/sass/script/value/map.rb +2 -2
- data/lib/sass/script/value/number.rb +3 -3
- data/lib/sass/script/value/string.rb +12 -5
- data/lib/sass/scss/parser.rb +101 -45
- data/lib/sass/scss/rx.rb +5 -11
- data/lib/sass/scss/static_parser.rb +0 -7
- data/lib/sass/selector.rb +4 -0
- data/lib/sass/selector/abstract_sequence.rb +5 -5
- data/lib/sass/selector/comma_sequence.rb +3 -15
- data/lib/sass/selector/pseudo.rb +4 -0
- data/lib/sass/selector/sequence.rb +30 -3
- data/lib/sass/selector/simple.rb +13 -7
- data/lib/sass/selector/simple_sequence.rb +1 -1
- data/lib/sass/shared.rb +3 -5
- data/lib/sass/source/map.rb +4 -4
- data/lib/sass/source/position.rb +4 -4
- data/lib/sass/stack.rb +21 -1
- data/lib/sass/tree/charset_node.rb +1 -1
- data/lib/sass/tree/comment_node.rb +1 -1
- data/lib/sass/tree/node.rb +3 -3
- data/lib/sass/tree/prop_node.rb +46 -54
- data/lib/sass/tree/rule_node.rb +7 -15
- data/lib/sass/tree/visitors/check_nesting.rb +1 -1
- data/lib/sass/tree/visitors/convert.rb +2 -3
- data/lib/sass/tree/visitors/cssize.rb +1 -10
- data/lib/sass/tree/visitors/deep_copy.rb +2 -2
- data/lib/sass/tree/visitors/perform.rb +23 -12
- data/lib/sass/tree/visitors/set_options.rb +1 -1
- data/lib/sass/tree/visitors/to_css.rb +46 -12
- data/lib/sass/util.rb +16 -321
- data/lib/sass/util/multibyte_string_scanner.rb +127 -131
- data/lib/sass/util/normalized_map.rb +1 -8
- data/lib/sass/version.rb +2 -2
- data/test/sass-spec.yml +1 -1
- data/test/sass/compiler_test.rb +4 -14
- data/test/sass/conversion_test.rb +113 -162
- data/test/sass/css2sass_test.rb +17 -19
- data/test/sass/css_variable_test.rb +176 -70
- data/test/sass/encoding_test.rb +2 -32
- data/test/sass/engine_test.rb +114 -65
- data/test/sass/extend_test.rb +37 -51
- data/test/sass/functions_test.rb +57 -15
- data/test/sass/importer_test.rb +2 -2
- data/test/sass/more_templates/more1.sass +10 -10
- data/test/sass/more_templates/more_import.sass +2 -2
- data/test/sass/plugin_test.rb +9 -12
- data/test/sass/script_conversion_test.rb +9 -0
- data/test/sass/script_test.rb +38 -48
- data/test/sass/scss/css_test.rb +5 -19
- data/test/sass/scss/scss_test.rb +58 -39
- data/test/sass/source_map_test.rb +26 -28
- data/test/sass/templates/_partial.sass +1 -1
- data/test/sass/templates/basic.sass +10 -10
- data/test/sass/templates/bork1.sass +1 -1
- data/test/sass/templates/bork5.sass +1 -1
- data/test/sass/templates/compact.sass +10 -10
- data/test/sass/templates/complex.sass +187 -187
- data/test/sass/templates/compressed.sass +10 -10
- data/test/sass/templates/expanded.sass +10 -10
- data/test/sass/templates/import.sass +2 -2
- data/test/sass/templates/importee.sass +3 -3
- data/test/sass/templates/mixins.sass +22 -22
- data/test/sass/templates/multiline.sass +4 -4
- data/test/sass/templates/nested.sass +13 -13
- data/test/sass/templates/parent_ref.sass +12 -12
- data/test/sass/templates/script.sass +70 -70
- data/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +1 -1
- data/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +2 -2
- data/test/sass/templates/subdir/subdir.sass +3 -3
- data/test/sass/templates/units.sass +10 -10
- data/test/sass/util/multibyte_string_scanner_test.rb +139 -149
- data/test/sass/util_test.rb +0 -36
- data/test/test_helper.rb +39 -0
- metadata +30 -57
- data/extra/sass-spec-ref.sh +0 -32
- data/lib/sass/deprecation.rb +0 -55
- data/lib/sass/script/css_variable_warning.rb +0 -52
- data/lib/sass/util/cross_platform_random.rb +0 -19
- data/lib/sass/util/ordered_hash.rb +0 -192
- data/test/sass/results/import_charset_1_8.css +0 -5
- data/test/sass/templates/import_charset_1_8.sass +0 -6
- data/vendor/listen/CHANGELOG.md +0 -1
- data/vendor/listen/CONTRIBUTING.md +0 -38
- data/vendor/listen/Gemfile +0 -20
- data/vendor/listen/Guardfile +0 -8
- data/vendor/listen/LICENSE +0 -20
- data/vendor/listen/README.md +0 -349
- data/vendor/listen/Rakefile +0 -5
- data/vendor/listen/Vagrantfile +0 -96
- data/vendor/listen/lib/listen.rb +0 -54
- data/vendor/listen/lib/listen/adapter.rb +0 -327
- data/vendor/listen/lib/listen/adapters/bsd.rb +0 -75
- data/vendor/listen/lib/listen/adapters/darwin.rb +0 -48
- data/vendor/listen/lib/listen/adapters/linux.rb +0 -81
- data/vendor/listen/lib/listen/adapters/polling.rb +0 -58
- data/vendor/listen/lib/listen/adapters/windows.rb +0 -91
- data/vendor/listen/lib/listen/directory_record.rb +0 -406
- data/vendor/listen/lib/listen/listener.rb +0 -323
- data/vendor/listen/lib/listen/turnstile.rb +0 -32
- data/vendor/listen/lib/listen/version.rb +0 -3
- data/vendor/listen/listen.gemspec +0 -28
- data/vendor/listen/spec/listen/adapter_spec.rb +0 -149
- data/vendor/listen/spec/listen/adapters/bsd_spec.rb +0 -36
- data/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -37
- data/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -47
- data/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -68
- data/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -30
- data/vendor/listen/spec/listen/directory_record_spec.rb +0 -1250
- data/vendor/listen/spec/listen/listener_spec.rb +0 -258
- data/vendor/listen/spec/listen/turnstile_spec.rb +0 -56
- data/vendor/listen/spec/listen_spec.rb +0 -67
- data/vendor/listen/spec/spec_helper.rb +0 -25
- data/vendor/listen/spec/support/adapter_helper.rb +0 -666
- data/vendor/listen/spec/support/directory_record_helper.rb +0 -57
- data/vendor/listen/spec/support/fixtures_helper.rb +0 -29
- data/vendor/listen/spec/support/listeners_helper.rb +0 -179
- data/vendor/listen/spec/support/platform_helper.rb +0 -15
data/extra/sass-spec-ref.sh
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#!/bin/bash -e
|
|
2
|
-
# Copyright 2016 Google Inc. Use of this source code is governed by an MIT-style
|
|
3
|
-
# license that can be found in the LICENSE file or at
|
|
4
|
-
# https://opensource.org/licenses/MIT.
|
|
5
|
-
|
|
6
|
-
# Echoes the sass-spec Git ref that should be checked out for the current Travis
|
|
7
|
-
# run. If we're running specs for a pull request which refers to a sass-spec
|
|
8
|
-
# pull request, we'll run against the latter rather than sass-spec master.
|
|
9
|
-
|
|
10
|
-
default=master
|
|
11
|
-
|
|
12
|
-
if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
|
13
|
-
>&2 echo "TRAVIS_PULL_REQUEST: $TRAVIS_PULL_REQUEST."
|
|
14
|
-
>&2 echo "Ref: $default."
|
|
15
|
-
echo "$default"
|
|
16
|
-
exit 0
|
|
17
|
-
fi
|
|
18
|
-
|
|
19
|
-
>&2 echo "Fetching pull request $TRAVIS_PULL_REQUEST..."
|
|
20
|
-
|
|
21
|
-
JSON=$(curl -L -sS https://api.github.com/repos/sass/sass/pulls/$TRAVIS_PULL_REQUEST)
|
|
22
|
-
|
|
23
|
-
RE_SPEC_PR="sass\/sass-spec(#|\/pull\/)([0-9]+)"
|
|
24
|
-
|
|
25
|
-
if [[ $JSON =~ $RE_SPEC_PR ]]; then
|
|
26
|
-
ref="pull/${BASH_REMATCH[2]}/head"
|
|
27
|
-
>&2 echo "Ref: $ref."
|
|
28
|
-
echo "$ref"
|
|
29
|
-
else
|
|
30
|
-
>&2 echo "Ref: $default."
|
|
31
|
-
echo "$default"
|
|
32
|
-
fi
|
data/lib/sass/deprecation.rb
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
module Sass
|
|
2
|
-
# A deprecation warning that should only be printed once for a given line in a
|
|
3
|
-
# given file.
|
|
4
|
-
#
|
|
5
|
-
# A global Deprecation instance should be created for each type of deprecation
|
|
6
|
-
# warning, and `warn` should be called each time a warning is needed.
|
|
7
|
-
class Deprecation
|
|
8
|
-
@@allow_double_warnings = false
|
|
9
|
-
|
|
10
|
-
# Runs a block in which double deprecation warnings for the same location
|
|
11
|
-
# are allowed.
|
|
12
|
-
def self.allow_double_warnings
|
|
13
|
-
old_allow_double_warnings = @@allow_double_warnings
|
|
14
|
-
@@allow_double_warnings = true
|
|
15
|
-
yield
|
|
16
|
-
ensure
|
|
17
|
-
@@allow_double_warnings = old_allow_double_warnings
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def initialize
|
|
21
|
-
# A set of filename, line pairs for which warnings have been emitted.
|
|
22
|
-
@seen = Set.new
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# Prints `message` as a deprecation warning associated with `filename`,
|
|
26
|
-
# `line`, and optionally `column`.
|
|
27
|
-
#
|
|
28
|
-
# This ensures that only one message will be printed for each line of a
|
|
29
|
-
# given file.
|
|
30
|
-
#
|
|
31
|
-
# @overload warn(filename, line, message)
|
|
32
|
-
# @param filename [String, nil]
|
|
33
|
-
# @param line [Number]
|
|
34
|
-
# @param message [String]
|
|
35
|
-
# @overload warn(filename, line, column, message)
|
|
36
|
-
# @param filename [String, nil]
|
|
37
|
-
# @param line [Number]
|
|
38
|
-
# @param column [Number]
|
|
39
|
-
# @param message [String]
|
|
40
|
-
def warn(filename, line, column_or_message, message = nil)
|
|
41
|
-
return if !@@allow_double_warnings && @seen.add?([filename, line]).nil?
|
|
42
|
-
if message
|
|
43
|
-
column = column_or_message
|
|
44
|
-
else
|
|
45
|
-
message = column_or_message
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
location = "line #{line}"
|
|
49
|
-
location << ", column #{column}" if column
|
|
50
|
-
location << " of #{filename}" if filename
|
|
51
|
-
|
|
52
|
-
Sass::Util.sass_warn("DEPRECATION WARNING on #{location}:\n#{message}")
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
module Sass
|
|
2
|
-
module Script
|
|
3
|
-
# An object tracking whether a warning has been emitted for a given script
|
|
4
|
-
# tree.
|
|
5
|
-
#
|
|
6
|
-
# This is shared among all objects in a script tree. Whenever any of those
|
|
7
|
-
# objects encounters a situation in which it wouldn't produce semantically
|
|
8
|
-
# identical CSS to its input, it calls \{#warn!\}. The first time \{#warn!}
|
|
9
|
-
# is called for a given warning object, it prints a deprecation warning.
|
|
10
|
-
class CssVariableWarning
|
|
11
|
-
def initialize
|
|
12
|
-
@warned = false
|
|
13
|
-
@value = nil
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# Sets the root of the script tree that this warning refers to.
|
|
17
|
-
#
|
|
18
|
-
# @param value [Sass::Script::Tree::Node]
|
|
19
|
-
def value=(value)
|
|
20
|
-
warn_called = @warned && !@value
|
|
21
|
-
@value = value
|
|
22
|
-
print_warning if warn_called
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# The first time this is called, it prints a deprecation warning.
|
|
26
|
-
#
|
|
27
|
-
# This may be called before \{#value=}. If it is, the warning is emitted
|
|
28
|
-
# once the script tree is set.
|
|
29
|
-
def warn!
|
|
30
|
-
return if @warned
|
|
31
|
-
@warned = true
|
|
32
|
-
return unless @value
|
|
33
|
-
|
|
34
|
-
print_warning
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
# Prints this node's warning.
|
|
40
|
-
def print_warning
|
|
41
|
-
of_filename = " of #{@value.filename}" if @value.filename
|
|
42
|
-
Sass::Util.sass_warn(
|
|
43
|
-
"DEPRECATION WARNING on line #{@value.line}#{of_filename}:\n" +
|
|
44
|
-
"Sass 3.6 will change the way CSS variables are parsed. Instead of being parsed as\n" +
|
|
45
|
-
"normal properties, they will not allow any Sass-specific behavior other than \#{}.\n" +
|
|
46
|
-
"For forwards-compatibility, use \#{}:\n" +
|
|
47
|
-
"\n" +
|
|
48
|
-
" --variable: \#{#{@value.to_sass}};")
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
module Sass
|
|
2
|
-
module Util
|
|
3
|
-
# Ruby 1.8 doesn't support an actual Random class with a settable seed.
|
|
4
|
-
class CrossPlatformRandom
|
|
5
|
-
def initialize(seed = nil)
|
|
6
|
-
if Sass::Util.ruby1_8?
|
|
7
|
-
srand(seed) if seed
|
|
8
|
-
else
|
|
9
|
-
@random = seed ? ::Random.new(seed) : ::Random.new
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def rand(*args)
|
|
14
|
-
return @random.rand(*args) if @random
|
|
15
|
-
Kernel.rand(*args)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2005-2013 David Heinemeier Hansson
|
|
2
|
-
#
|
|
3
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
# a copy of this software and associated documentation files (the
|
|
5
|
-
# "Software"), to deal in the Software without restriction, including
|
|
6
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
# the following conditions:
|
|
10
|
-
#
|
|
11
|
-
# The above copyright notice and this permission notice shall be
|
|
12
|
-
# included in all copies or substantial portions of the Software.
|
|
13
|
-
#
|
|
14
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
-
|
|
22
|
-
# This class was copied from an old version of ActiveSupport.
|
|
23
|
-
class OrderedHash < ::Hash
|
|
24
|
-
# In MRI the Hash class is core and written in C. In particular, methods are
|
|
25
|
-
# programmed with explicit C function calls and polymorphism is not honored.
|
|
26
|
-
#
|
|
27
|
-
# For example, []= is crucial in this implementation to maintain the @keys
|
|
28
|
-
# array but hash.c invokes rb_hash_aset() originally. This prevents method
|
|
29
|
-
# reuse through inheritance and forces us to reimplement stuff.
|
|
30
|
-
#
|
|
31
|
-
# For instance, we cannot use the inherited #merge! because albeit the algorithm
|
|
32
|
-
# itself would work, our []= is not being called at all by the C code.
|
|
33
|
-
|
|
34
|
-
def initialize(*args)
|
|
35
|
-
super
|
|
36
|
-
@keys = []
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def self.[](*args)
|
|
40
|
-
ordered_hash = new
|
|
41
|
-
|
|
42
|
-
if args.length == 1 && args.first.is_a?(Array)
|
|
43
|
-
args.first.each do |key_value_pair|
|
|
44
|
-
next unless key_value_pair.is_a?(Array)
|
|
45
|
-
ordered_hash[key_value_pair[0]] = key_value_pair[1]
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
return ordered_hash
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
unless args.size.even?
|
|
52
|
-
raise ArgumentError.new("odd number of arguments for Hash")
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
args.each_with_index do |val, ind|
|
|
56
|
-
next if ind.odd?
|
|
57
|
-
ordered_hash[val] = args[ind + 1]
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
ordered_hash
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def initialize_copy(other)
|
|
64
|
-
super
|
|
65
|
-
# make a deep copy of keys
|
|
66
|
-
@keys = other.keys
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def []=(key, value)
|
|
70
|
-
@keys << key unless has_key?(key)
|
|
71
|
-
super
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def delete(key)
|
|
75
|
-
if has_key? key
|
|
76
|
-
index = @keys.index(key)
|
|
77
|
-
@keys.delete_at index
|
|
78
|
-
end
|
|
79
|
-
super
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def delete_if
|
|
83
|
-
super
|
|
84
|
-
sync_keys!
|
|
85
|
-
self
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def reject!
|
|
89
|
-
super
|
|
90
|
-
sync_keys!
|
|
91
|
-
self
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def reject
|
|
95
|
-
dup.reject! {|h, k| yield h, k}
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def keys
|
|
99
|
-
@keys.dup
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def values
|
|
103
|
-
@keys.map {|key| self[key]}
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def to_hash
|
|
107
|
-
self
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def to_a
|
|
111
|
-
@keys.map {|key| [key, self[key]]}
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
def each_key
|
|
115
|
-
return to_enum(:each_key) unless block_given?
|
|
116
|
-
@keys.each {|key| yield key}
|
|
117
|
-
self
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
def each_value
|
|
121
|
-
return to_enum(:each_value) unless block_given?
|
|
122
|
-
@keys.each {|key| yield self[key]}
|
|
123
|
-
self
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def each
|
|
127
|
-
return to_enum(:each) unless block_given?
|
|
128
|
-
@keys.each {|key| yield [key, self[key]]}
|
|
129
|
-
self
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def each_pair
|
|
133
|
-
return to_enum(:each_pair) unless block_given?
|
|
134
|
-
@keys.each {|key| yield key, self[key]}
|
|
135
|
-
self
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
alias_method :select, :find_all
|
|
139
|
-
|
|
140
|
-
def clear
|
|
141
|
-
super
|
|
142
|
-
@keys.clear
|
|
143
|
-
self
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
def shift
|
|
147
|
-
k = @keys.first
|
|
148
|
-
v = delete(k)
|
|
149
|
-
[k, v]
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def merge!(other_hash)
|
|
153
|
-
if block_given?
|
|
154
|
-
other_hash.each {|k, v| self[k] = key?(k) ? yield(k, self[k], v) : v}
|
|
155
|
-
else
|
|
156
|
-
other_hash.each {|k, v| self[k] = v}
|
|
157
|
-
end
|
|
158
|
-
self
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
alias_method :update, :merge!
|
|
162
|
-
|
|
163
|
-
def merge(other_hash)
|
|
164
|
-
if block_given?
|
|
165
|
-
dup.merge!(other_hash) {|k, v1, v2| yield k, v1, v2}
|
|
166
|
-
else
|
|
167
|
-
dup.merge!(other_hash)
|
|
168
|
-
end
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
# When replacing with another hash, the initial order of our keys must come from the other hash --
|
|
172
|
-
# ordered or not.
|
|
173
|
-
def replace(other)
|
|
174
|
-
super
|
|
175
|
-
@keys = other.keys
|
|
176
|
-
self
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
def invert
|
|
180
|
-
OrderedHash[to_a.map! {|key_value_pair| key_value_pair.reverse}]
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
def inspect
|
|
184
|
-
"#<OrderedHash #{super}>"
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
private
|
|
188
|
-
|
|
189
|
-
def sync_keys!
|
|
190
|
-
@keys.delete_if {|k| !has_key?(k)}
|
|
191
|
-
end
|
|
192
|
-
end
|
data/vendor/listen/CHANGELOG.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# Moved to [Github releases](https://github.com/guard/listen/releases) page.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Contribute to Listen
|
|
2
|
-
===================
|
|
3
|
-
|
|
4
|
-
File an issue
|
|
5
|
-
-------------
|
|
6
|
-
|
|
7
|
-
You can report bugs and feature requests to [GitHub Issues](https://github.com/guard/listen/issues).
|
|
8
|
-
|
|
9
|
-
**Please don't ask question in the issue tracker**, instead ask them in our
|
|
10
|
-
[Google group](http://groups.google.com/group/guard-dev) or on `#guard` (irc.freenode.net).
|
|
11
|
-
|
|
12
|
-
Try to figure out where the issue belongs to: Is it an issue with Listen itself or with Guard?
|
|
13
|
-
|
|
14
|
-
When you file a bug, please try to follow these simple rules if applicable:
|
|
15
|
-
|
|
16
|
-
* Make sure you run Listen with `bundle exec` first.
|
|
17
|
-
* Add your `Guardfile` (if used) and `Gemfile` to the issue.
|
|
18
|
-
* Make sure that the issue is reproducible with your description.
|
|
19
|
-
|
|
20
|
-
**It's most likely that your bug gets resolved faster if you provide as much information as possible!**
|
|
21
|
-
|
|
22
|
-
Development
|
|
23
|
-
-----------
|
|
24
|
-
|
|
25
|
-
* Documentation hosted at [RubyDoc](http://rubydoc.info/github/guard/listen/master/frames).
|
|
26
|
-
* Source hosted at [GitHub](https://github.com/guard/listen).
|
|
27
|
-
|
|
28
|
-
Pull requests are very welcome! Please try to follow these simple rules if applicable:
|
|
29
|
-
|
|
30
|
-
* Please create a topic branch for every separate change you make.
|
|
31
|
-
* Make sure your patches are well tested. All specs run with `rake spec` must pass.
|
|
32
|
-
* Update the [Yard](http://yardoc.org/) documentation.
|
|
33
|
-
* Update the [README](https://github.com/guard/listen/blob/master/README.md).
|
|
34
|
-
* Update the [CHANGELOG](https://github.com/guard/listen/blob/master/CHANGELOG.md) for noteworthy changes.
|
|
35
|
-
* Please **do not change** the version number.
|
|
36
|
-
|
|
37
|
-
For questions please join us in our [Google group](http://groups.google.com/group/guard-dev) or on
|
|
38
|
-
`#guard` (irc.freenode.net).
|
data/vendor/listen/Gemfile
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
gemspec
|
|
4
|
-
|
|
5
|
-
gem 'rake'
|
|
6
|
-
|
|
7
|
-
require 'rbconfig'
|
|
8
|
-
gem 'wdm', '>= 0.1.0' if RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i
|
|
9
|
-
|
|
10
|
-
group :development do
|
|
11
|
-
gem 'guard-rspec'
|
|
12
|
-
gem 'yard'
|
|
13
|
-
gem 'redcarpet'
|
|
14
|
-
gem 'pimpmychangelog'
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
group :test do
|
|
18
|
-
gem 'rspec'
|
|
19
|
-
gem 'coveralls', :require => false
|
|
20
|
-
end
|
data/vendor/listen/Guardfile
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
guard :rspec, :all_on_start => false, :all_after_pass => false do
|
|
2
|
-
watch(%r{^spec/.+_spec\.rb$})
|
|
3
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
|
4
|
-
watch('spec/support/adapter_helper.rb') { "spec/listen/adapters" }
|
|
5
|
-
watch('spec/support/listener_helper.rb') { "spec/listen/listener_spec.rb" }
|
|
6
|
-
watch('spec/support/fixtures_helper.rb') { "spec" }
|
|
7
|
-
watch('spec/spec_helper.rb') { "spec" }
|
|
8
|
-
end
|
data/vendor/listen/LICENSE
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2013 Thibaud Guillaume-Gentil
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
-
a copy of this software and associated documentation files (the
|
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
-
the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be
|
|
12
|
-
included in all copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|