snippets_converter 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -3,7 +3,7 @@
3
3
  Convert TextMate Snippets into Gedit, NetBeans and Ruble (Aptana Studio/RadRails 3) snippets.
4
4
 
5
5
  == Install the gem
6
- sudo gem snippets_converter
6
+ sudo gem install snippets_converter
7
7
 
8
8
  == How to use (for Ubuntu and Ruby snippets)
9
9
  * Open a terminal and go in your TextMate Bundle directory. Then run
@@ -54,5 +54,5 @@ More info at https://radrails.tenderapp.com/faqs/radrails-3/ruble-programming-gu
54
54
 
55
55
  Copyright (c) 2009 Nicolas Alpi
56
56
 
57
- Copyright (c) 2010 Nowhere Man. See LICENSE for details.
57
+ Copyright (c) 2011 Nowhere Man. See LICENSE for details.
58
58
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
File without changes
@@ -27,9 +27,13 @@ module SnippetsConverter
27
27
  output = nil
28
28
  language = nil
29
29
  for file in Dir.glob("#{@in_folder}/**/*.tmSnippet")
30
- puts "Converting #{file} to #{@editor} snippet..."
31
- output = "#{output}#{convert(file)}"
32
- language = parse_tm_snippet(file)[:language] unless language
30
+ if ( new_output = convert(file) )
31
+ puts "Converting '#{File.basename(file)}' to #{@editor} snippet..."
32
+ output = "#{output}#{new_output}"
33
+ language = parse_tm_snippet(file)[:language] unless language
34
+ else
35
+ puts "(WARNING): Unable to convert the snippet '#{File.basename(file)}'."
36
+ end
33
37
  end
34
38
  output = "#{editor_header(language)}#{output}#{editor_bottom}"
35
39
 
@@ -66,26 +70,28 @@ module SnippetsConverter
66
70
  end
67
71
 
68
72
  tm_snippet = {}
69
- tm_snippet[:trigger] = arrString[arrKey.index('tabTrigger')]
70
- tm_snippet[:code] = arrString[arrKey.index('content')]
71
- tm_snippet[:description] = arrString[arrKey.index('name')]
72
- tm_snippet[:language] = arrString[arrKey.index('scope')]
73
-
73
+ # The array, that contains the snippet info, must have all the keys below
74
+ if (['tabTrigger', 'content', 'name', 'scope'] - arrKey.uniq ).empty?
75
+ tm_snippet[:trigger] = arrString[arrKey.index('tabTrigger')]
76
+ tm_snippet[:code] = arrString[arrKey.index('content')]
77
+ tm_snippet[:description] = arrString[arrKey.index('name')]
78
+ tm_snippet[:language] = arrString[arrKey.index('scope')]
79
+ end
74
80
  tm_snippet
75
81
  end
76
82
 
77
83
  def convert(file)
78
84
  tm_snippet = parse_tm_snippet(file)
79
-
80
- transform_snippet(tm_snippet[:code])
81
- return editor_conversion(tm_snippet[:trigger], tm_snippet[:description], tm_snippet[:code])
82
-
85
+ if !tm_snippet.blank?
86
+ transform_snippet(tm_snippet[:code])
87
+ return editor_conversion(tm_snippet[:trigger], tm_snippet[:description], tm_snippet[:code])
88
+ end
83
89
  end
84
90
 
85
91
  # Nested tab stops and place holders remover, e.g '${1: ${3:cool} $2 }' become ' ${3:cool} $2 '
86
92
  def transform_snippet(code)
87
93
  # Transform TextMate snippets syntax into snippets converter internal codes, e.g. '$' become ':dollar:'
88
-
94
+
89
95
  # Nested tab stops, e.g '${1: $2 }'
90
96
  nested_tab_stop = /((\$\{[0-9]{1,5}:[^${}]*)\$([0-9]{1,5})([^${}]*\}))+/m
91
97
  code.gsub!(nested_tab_stop, '\2:nested_tab_stop\3:\4')
@@ -101,7 +107,7 @@ module SnippetsConverter
101
107
  loop do
102
108
  i += 1
103
109
  break if !code.gsub!(/\{([^{}]*|[^{}]*\{[^{}]*\}[^{}]*)\\\}/, ':escape_bracket:\1:escape_close_bracket:') || i > 20
104
- end
110
+ end
105
111
 
106
112
  code.gsub!(/\$([^{][^0-9]+[^:])/, ':dollar:\1') # Dollar, e.g. '$titi'
107
113
 
@@ -114,7 +120,7 @@ module SnippetsConverter
114
120
  code.gsub!(/\$\{#{place_holder}\}/m, ":place_holders#{idx}:")
115
121
  end
116
122
  end
117
-
123
+
118
124
 
119
125
  #TODO Check if the regular expression in variables are correctly converted/supported
120
126
  # More info at http://manual.macromates.com/en/regular_expressions.html
@@ -128,14 +134,14 @@ module SnippetsConverter
128
134
  end
129
135
 
130
136
  # Transform snippets converter internal codes into characters, e.g. ':dollar:' become '$'
131
-
137
+
132
138
  place_holders_matches.flatten.each do |place_holder|
133
139
  if place_holder
134
140
  idx = place_holder.gsub(/([0-9]{1,5}):.+/,'\1')
135
141
  code.gsub!(/:place_holders#{idx}:/m, "\$\{#{place_holder}\}")
136
142
  end
137
143
  end
138
-
144
+
139
145
  # Nested tab stops
140
146
  code.gsub!(/:nested_tab_stop([0-9]{1,5}):/, '$\1')
141
147
  nested_tab_stop = /(\$\{[0-9]{1,5}:([^${}]*\$[0-9]{1,5}[^${}]*)\})+/m
@@ -156,8 +162,8 @@ module SnippetsConverter
156
162
  break if !code.gsub!(/:escape_bracket:(.*):escape_close_bracket:/, '{\1}') || i > 20
157
163
  end
158
164
 
159
- code.gsub!(/:dollar:/, '$')
160
-
165
+ code.gsub!(/:dollar:/, '$')
166
+
161
167
  end
162
168
 
163
169
  # Dummy methods, the current Editor module must override them
@@ -1,56 +1,53 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{snippets_converter}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nowhere Man"]
12
- s.date = %q{2010-06-17}
12
+ s.date = %q{2011-02-08}
13
13
  s.default_executable = %q{snippets_converter}
14
14
  s.description = %q{Quick and dirty code to transform TextMate Snippets into Gedit, NetBeans and Ruble (Aptana Studio) snippets}
15
15
  s.email = %q{nowhereman@open_office}
16
16
  s.executables = ["snippets_converter"]
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE",
19
- "README.rdoc"
19
+ "README.rdoc"
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
- ".gitignore",
24
- "LICENSE",
25
- "README.rdoc",
26
- "Rakefile",
27
- "VERSION",
28
- "bin/snippets_converter",
29
- "in/DummyFile",
30
- "lib/snippets_converter.rb",
31
- "lib/snippets_converter/editors/gedit.rb",
32
- "lib/snippets_converter/editors/netbeans.rb",
33
- "lib/snippets_converter/editors/ruble.rb",
34
- "out/DummyFile",
35
- "snippets_converter.gemspec",
36
- "test/examples/assert_bad_value.tmSnippet",
37
- "test/test_helper.rb",
38
- "test/test_parse_tm_snippet.rb",
39
- "test/test_snippets_converter.rb"
23
+ "LICENSE",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "bin/snippets_converter",
28
+ "in/DummyFile",
29
+ "lib/snippets_converter.rb",
30
+ "lib/snippets_converter/editors/gedit.rb",
31
+ "lib/snippets_converter/editors/netbeans.rb",
32
+ "lib/snippets_converter/editors/ruble.rb",
33
+ "out/DummyFile",
34
+ "snippets_converter.gemspec",
35
+ "test/examples/assert_bad_value.tmSnippet",
36
+ "test/test_helper.rb",
37
+ "test/test_parse_tm_snippet.rb",
38
+ "test/test_snippets_converter.rb"
40
39
  ]
41
40
  s.homepage = %q{http://github.com/nowhereman/snippets_converter}
42
- s.rdoc_options = ["--charset=UTF-8"]
43
41
  s.require_paths = ["lib"]
44
- s.rubygems_version = %q{1.3.7}
42
+ s.rubygems_version = %q{1.4.1}
45
43
  s.summary = %q{Convert TextMate Snippets Gedit, NetBeans and Ruble (Aptana Studio) Snippets.}
46
44
  s.test_files = [
45
+ "test/test_helper.rb",
47
46
  "test/test_parse_tm_snippet.rb",
48
- "test/test_snippets_converter.rb",
49
- "test/test_helper.rb"
47
+ "test/test_snippets_converter.rb"
50
48
  ]
51
49
 
52
50
  if s.respond_to? :specification_version then
53
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
54
51
  s.specification_version = 3
55
52
 
56
53
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -62,3 +59,4 @@ Gem::Specification.new do |s|
62
59
  s.add_dependency(%q<activesupport>, ["< 3.0.0"])
63
60
  end
64
61
  end
62
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snippets_converter
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
4
+ hash: 19
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nowhere Man
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-17 00:00:00 +02:00
18
+ date: 2011-02-08 00:00:00 +01:00
19
19
  default_executable: snippets_converter
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -45,7 +45,6 @@ extra_rdoc_files:
45
45
  - README.rdoc
46
46
  files:
47
47
  - .document
48
- - .gitignore
49
48
  - LICENSE
50
49
  - README.rdoc
51
50
  - Rakefile
@@ -67,8 +66,8 @@ homepage: http://github.com/nowhereman/snippets_converter
67
66
  licenses: []
68
67
 
69
68
  post_install_message:
70
- rdoc_options:
71
- - --charset=UTF-8
69
+ rdoc_options: []
70
+
72
71
  require_paths:
73
72
  - lib
74
73
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -92,11 +91,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
91
  requirements: []
93
92
 
94
93
  rubyforge_project:
95
- rubygems_version: 1.3.7
94
+ rubygems_version: 1.4.1
96
95
  signing_key:
97
96
  specification_version: 3
98
97
  summary: Convert TextMate Snippets Gedit, NetBeans and Ruble (Aptana Studio) Snippets.
99
98
  test_files:
99
+ - test/test_helper.rb
100
100
  - test/test_parse_tm_snippet.rb
101
101
  - test/test_snippets_converter.rb
102
- - test/test_helper.rb
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- *.sw?
2
- .DS_Store
3
- coverage
4
- rdoc
5
- pkg
6
- .project
7
- nbproject
8
- in/*
9
- out/*