sublime_dsl 0.1.2 → 0.1.3

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d1c6a39ce468da1206014f15be5c290a183a34f3
4
- data.tar.gz: dc07f39837167615520084fbaf98f11d03b3fb89
3
+ metadata.gz: 2b8d27365694163f7591eaddbbb3b5ee49e23d0d
4
+ data.tar.gz: 148e250394b70938505cc5d70724c6b90e83db6e
5
5
  SHA512:
6
- metadata.gz: b739dd4ebe8ed084ba450e24f7ced6b759af4bf6407445f5eaab825a8dfed6f6831d57325e411e2278587b161507ef5ac58cb388e2e44899f8210bb83be5a393
7
- data.tar.gz: 59c5477cd3a1be0fb91976e22a4684f18725ebcaf54cc45c96bbded11746f0fba08ce0561664334a1a02bd04869c288b2867e4bac980da4c5fba16769e3b998a
6
+ metadata.gz: cf534670e87d8b79925587e5fd0cb2f77672842db7d52eaca06833dbd521f7b580b34178c17c3ea5d054ade0fb35c6a5f31dbb4704ef94fbbbf7b8e7824af556
7
+ data.tar.gz: e2ca60fc9ddd9edef988c29b4cc4df32bb75a54cd3b516fcf51066ffdb84a905261047855a7ce1a4d362266d76b411986fa27e37fc241ca2b91d79f10c9007f2
data/HISTORY.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.1.3
2
+
3
+ * Ruby 2.4: Fixnum now deprecated, use Integer
4
+ * update gem dependency versions
5
+ * protect against Regexp.new freezing its argument (Ruby 2.4.1)
6
+
1
7
  ## 0.1.2
2
8
 
3
9
  * grammars: fix a bug when exporting 'to' regexp containing '§'
@@ -12,7 +12,7 @@ require_relative 'sublime_dsl/cli'
12
12
 
13
13
  module SublimeDSL
14
14
 
15
- VERSION = '0.1.2'
15
+ VERSION = '0.1.3'
16
16
 
17
17
  class Error < StandardError; end
18
18
  class OptionError < Error; end
@@ -48,7 +48,10 @@ module SublimeText
48
48
  # map_char and map_key call this method while @sublime is not yet set
49
49
  unless @defining_sublime
50
50
  @defining_sublime = true
51
- # FIXME: space => key_event nil, but generates a key_event when modified
51
+ # FIXME: space => key_event nil, but generates a key_event when modified,
52
+ # because it's a character
53
+ # => put it in SUBLIME_ALIAS_MAP, but remember it was named 'space' when
54
+ # generating its to_s ('ctrl+ ' will generate problems...)
52
55
  kb.map_char 'space' => ' ', key_event: nil
53
56
  @defining_sublime = false
54
57
  end
@@ -93,13 +93,13 @@ module TextMate
93
93
 
94
94
  def dump_object(object, indent)
95
95
  case object
96
- when String; dump_string(object, indent)
97
- when Fixnum; dump_fixnum(object, indent)
98
- when Hash; dump_hash(object, indent)
99
- when Array; dump_array(object, indent)
100
- when TrueClass; "#{indent}<true/>\n"
101
- when FalseClass; "#{indent}<false/>\n"
102
- else; raise Error, "unexpected type: #{object.class.name}"
96
+ when String then dump_string(object, indent)
97
+ when Integer then dump_integer(object, indent)
98
+ when Hash then dump_hash(object, indent)
99
+ when Array then dump_array(object, indent)
100
+ when TrueClass then "#{indent}<true/>\n"
101
+ when FalseClass then "#{indent}<false/>\n"
102
+ else raise Error, "unexpected type: #{object.class.name}"
103
103
  end
104
104
  end
105
105
 
@@ -107,7 +107,7 @@ module TextMate
107
107
  "#{indent}<string>" << h(str) << "</string>\n"
108
108
  end
109
109
 
110
- def dump_fixnum(num, indent)
110
+ def dump_integer(num, indent)
111
111
  "#{indent}<integer>#{num}</integer>\n"
112
112
  end
113
113
 
@@ -267,8 +267,15 @@ module TextMate
267
267
  end
268
268
 
269
269
  def convert_object(object)
270
- k = object.class.name.split('::').last.snake_case
271
- send "convert_#{k}", object
270
+ case object
271
+ when Array then convert_array object
272
+ when Hash then convert_hash object
273
+ when Tools::RegexpWannabe then object.to_s
274
+ # TODO: booleans as 1/0 or true/false?
275
+ when TrueClass then 1
276
+ when FalseClass then 0
277
+ else object # String, Integer, NilClass
278
+ end
272
279
  end
273
280
 
274
281
  def convert_array(list)
@@ -281,18 +288,6 @@ module TextMate
281
288
  out
282
289
  end
283
290
 
284
- def convert_regexp_wannabe(re)
285
- re.to_s
286
- end
287
-
288
- def convert_string(v) v end
289
- def convert_fixnum(v) v end
290
- def convert_nil_class(v) v end
291
-
292
- # TODO: booleans as 1/0 or true/false?
293
- def convert_true_class(v) 1 end
294
- def convert_false_class(v) 0 end
295
-
296
291
  end
297
292
 
298
293
  end
@@ -99,7 +99,7 @@ module Tools
99
99
  end
100
100
 
101
101
  def try_conversion
102
- @warnings = capture_warnings { @regexp = Regexp.new(source) }
102
+ @warnings = capture_warnings { @regexp = Regexp.new(source.dup) }
103
103
  @backref = nil unless source =~ /§[1-9]/
104
104
  rescue RegexpError => ex
105
105
  msg = ex.message
@@ -122,7 +122,7 @@ module Tools
122
122
  end
123
123
 
124
124
  begin
125
- @warnings = capture_warnings { @regexp = Regexp.new(source) }
125
+ @warnings = capture_warnings { @regexp = Regexp.new(source.dup) }
126
126
  rescue RegexpError => ex
127
127
  @error = ex.message
128
128
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sublime_dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thierry Lambert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-30 00:00:00.000000000 Z
11
+ date: 2017-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: '2.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.8'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.6'
33
+ version: '1.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.6'
40
+ version: '1.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubyzip
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.1'
47
+ version: '1.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.1'
54
+ version: '1.2'
55
55
  description: |
56
56
  Sublime DSL allows generating Sublime Text configuration files
57
57
  from a Ruby DSL, giving the power of Ruby to develop and maintain
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  requirements: []
142
142
  rubyforge_project:
143
- rubygems_version: 2.4.1
143
+ rubygems_version: 2.6.12
144
144
  signing_key:
145
145
  specification_version: 4
146
146
  summary: A DSL to specify Sublime Text packages.