mate 1.2.1 → 1.3.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 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