mate 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzVkYWZkNzAyZjYzOGM0Y2I1MTNkY2M4YjBkODk0MjZlYmI4Yjg4Mw==
4
+ MDQwY2I1MDBhOTNkYmM2YzI4YzgyOWQzZWYyMWJlMjM0YmE1MGY0MQ==
5
5
  data.tar.gz: !binary |-
6
- NDljYzU4NjM1ZjQxYmM4NmE0YzJhNjk0Y2QzM2RkZWU0ZTcxZWQzMw==
6
+ NmYzMjUzOTMwOTlmMTdhNzg3YTJkN2NjN2RmMDgwYmRhYmVkNzhmOQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZmJkYzE1MjE5M2EyYjYxN2Y2OWJhMGQ5Y2UwZTUwODk1ZTMwMTA0NmE4ZjJl
10
- YWMwMjMyN2ViYjQwZjJiZjFjNWIxYzE4MjI5NzcwZWIzODI5MTExYzhiNTc2
11
- YjAyOTljZmRiYzMwZjZiMTZhNTE2M2Y4NGJlN2E0MWQyMGRmY2Y=
9
+ MDE1ZGRiODFjYWYyYjZmMDk5MzFmMGFlYTFiMjkxOTlkOWEwNGRmZTdlM2Uw
10
+ ZWQyNjY3ZmQzNjk2ODdjYTQ0N2FjMmM2ODU2ZGQwNmUzMDE3NzViMGU2M2Ex
11
+ OWY3MmFjMDdjMTAyNjBmYmEzNGQzZTM4OGNkOGZhYzViNWIyYjc=
12
12
  data.tar.gz: !binary |-
13
- YmZhNDhjMjNhZDU5ZGQxNmVhNGUwZDczNTJmYTk4MDgxZTdmODQ2YjZlYWY3
14
- YjU5MGZlM2JmMzUwOWYxOWIxNjYzMjI5NGJmOGQ3NWM5MWNjYWY1ZjVkZjIz
15
- MzA5MTRiZWZjOWMwNGFlY2E4MmUwZDZmOThkYjRhOTU1M2U0Mjk=
13
+ YmJjMjBiZTNhMGNmNjhjMTRmZGI5MTdmMWEyM2MyZDY2ZWM4MDYyYjI0NmU1
14
+ OWE0YzJhODI0MWMwNWQwZWIxYWQ0ODUxMmFhMmMwNDkxYjhlYjk2YjUwMDQ5
15
+ ZjExMjg1YWJmYWZlNWJkZWU3ZjMwN2VlMTVhMDA0MTlmM2JmMmE=
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2013 Ivan Kuchin
1
+ Copyright (c) 2010-2014 Ivan Kuchin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.markdown CHANGED
@@ -8,4 +8,4 @@ When `tm` command (or `mate` if aliased) is called with one or more paths and an
8
8
 
9
9
  ## Copyright
10
10
 
11
- Copyright (c) 2010-2013 Ivan Kuchin. See LICENSE.txt for details.
11
+ Copyright (c) 2010-2014 Ivan Kuchin. See LICENSE.txt for details.
@@ -56,7 +56,7 @@ module Mate
56
56
  end.reject do |line|
57
57
  line.empty? || %w[# !].include?(line[0, 1])
58
58
  end.each do |line|
59
- pattern = Regexp.escape(line).gsub(/\\\*+/, '[^/]*') # understand only * pattern
59
+ pattern = glob2regexp(line)
60
60
  pattern = "#{DOUBLE_ASTERISK_R}#{pattern}" unless line['/']
61
61
  pattern.sub!(/^\//, '')
62
62
  unless pattern.sub!(/\/$/, '')
@@ -74,5 +74,26 @@ module Mate
74
74
  file_pattern << current_file_pattern
75
75
  folder_pattern << current_folder_pattern
76
76
  end
77
+
78
+ def glob2regexp(glob)
79
+ glob.gsub(/\[([^\]]*)\]|\{([^\}]*)\}|(\*+)|(\?+)|./) do |m|
80
+ case
81
+ when $1
82
+ "[#{Regexp.escape($1)}]"
83
+ when $2
84
+ "(?:#{Regexp.escape($2).split(',').join('|')})"
85
+ when $3 == '*'
86
+ '[^/]*'
87
+ when $3
88
+ '.*'
89
+ when $4 == '?'
90
+ '[^/]'
91
+ when $4
92
+ "[^/]{#{$4.length}}"
93
+ else
94
+ Regexp.escape(m)
95
+ end
96
+ end
97
+ end
77
98
  end
78
99
  end
data/mate.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'mate'
5
- s.version = '1.2.1'
5
+ s.version = '1.3.0'
6
6
  s.summary = %q{TextMate project builder using git ignores for exclusions}
7
7
  s.homepage = "http://github.com/toy/#{s.name}"
8
8
  s.authors = ['Ivan Kuchin']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kuchin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-21 00:00:00.000000000 Z
11
+ date: 2014-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: plist