sublime_sunippetter 0.0.4 → 0.0.5
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.
- data/Gemfile +1 -0
- data/README.md +29 -0
- data/lib/sublime_sunippetter.rb +25 -1
- data/lib/sublime_sunippetter/version.rb +1 -1
- data/lib/sublime_sunippetter_dsl.rb +6 -1
- data/spec/sublime_sunippetter_dsl_spec.rb +22 -0
- data/spec/sublime_sunippetter_spec.rb +12 -3
- data/sublime_sunippetter.gemspec +1 -0
- metadata +21 -10
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -53,6 +53,8 @@ add :hige
|
|
53
53
|
add :hoge1, :args1, :args2, "block@d"
|
54
54
|
# if two args method and brace-block
|
55
55
|
add :hoge2, :args1, :args2, "block@b"
|
56
|
+
# requires
|
57
|
+
add_requires 'hoge', 'hige'
|
56
58
|
~~~
|
57
59
|
|
58
60
|
Third, you have to do is execute command 'suni'.
|
@@ -115,6 +117,32 @@ hoge2 ${1:args1}, ${2:args2} { |${9:args}|${0:block} }
|
|
115
117
|
</snippet>
|
116
118
|
~~~
|
117
119
|
|
120
|
+
And
|
121
|
+
|
122
|
+
~~~xml
|
123
|
+
<snippet>
|
124
|
+
<content><![CDATA[
|
125
|
+
require 'hoge'
|
126
|
+
]]></content>
|
127
|
+
<tabTrigger>require hoge</tabTrigger>
|
128
|
+
<scope>source.java</scope>
|
129
|
+
<description>require hoge</description>
|
130
|
+
</snippet>
|
131
|
+
~~~
|
132
|
+
|
133
|
+
And
|
134
|
+
|
135
|
+
~~~xml
|
136
|
+
<snippet>
|
137
|
+
<content><![CDATA[
|
138
|
+
require 'hige'
|
139
|
+
]]></content>
|
140
|
+
<tabTrigger>require hige</tabTrigger>
|
141
|
+
<scope>source.ruby</scope>
|
142
|
+
<description>require hige</description>
|
143
|
+
</snippet>
|
144
|
+
~~~
|
145
|
+
|
118
146
|
in 'C:/Users/user_name/AppData/Roaming/Sublime Text 2/Packages/User' directory.
|
119
147
|
|
120
148
|
## Use Generated Sunippet
|
@@ -122,6 +150,7 @@ in 'C:/Users/user_name/AppData/Roaming/Sublime Text 2/Packages/User' directory.
|
|
122
150
|
<img src="./doc_image/sublime_sunippetter.gif" />
|
123
151
|
|
124
152
|
## History
|
153
|
+
* version 0.0.5 : enable require 'filename' generate.
|
125
154
|
* version 0.0.4 : enable do-block, brace-block generate.
|
126
155
|
* version 0.0.3 : question can use. for ex 'blank?'.
|
127
156
|
* version 0.0.1 : first release.
|
data/lib/sublime_sunippetter.rb
CHANGED
@@ -27,6 +27,9 @@ module SublimeSunippetter
|
|
27
27
|
# add :hoge1, :args1, :args2, "block@d"
|
28
28
|
# if two args method and brace-block
|
29
29
|
# add :hoge2, :args1, :args2, "block@b"
|
30
|
+
|
31
|
+
# require snippet
|
32
|
+
# add_requires 'file1', 'file2'
|
30
33
|
EOS
|
31
34
|
|
32
35
|
# sublime sunippet template
|
@@ -41,6 +44,18 @@ module SublimeSunippetter
|
|
41
44
|
</snippet>
|
42
45
|
EOS
|
43
46
|
|
47
|
+
# sublime sunippet require template
|
48
|
+
REQUIRE_SUNIPPET_TEMPLATE = <<-EOS
|
49
|
+
<snippet>
|
50
|
+
<content><![CDATA[
|
51
|
+
require '<%= require_file %>'
|
52
|
+
]]></content>
|
53
|
+
<tabTrigger>require <%= require_file %></tabTrigger>
|
54
|
+
<scope><%= scope%></scope>
|
55
|
+
<description>require <%= require_file %></description>
|
56
|
+
</snippet>
|
57
|
+
EOS
|
58
|
+
|
44
59
|
# generate Sunippetdefine to current directory.
|
45
60
|
def init
|
46
61
|
File.open("./#{DEFINE_FILE}", 'w') { |f|f.puts DEFINE_FILE_TEMPLATE }
|
@@ -62,6 +77,11 @@ module SublimeSunippetter
|
|
62
77
|
filename = "#{dsl._output_path}/#{m.method_name.to_s.tr('?', '')}.sublime-snippet"
|
63
78
|
File.open(filename, 'w:UTF-8') { |f|f.puts snippet }
|
64
79
|
end
|
80
|
+
|
81
|
+
dsl.requires.each do |r|
|
82
|
+
require_snippet = get_require_snippet(r, dsl._scope)
|
83
|
+
File.open("require_#{r}.sublime-snippet", 'w:UTF-8') { |f|f.puts require_snippet }
|
84
|
+
end
|
65
85
|
end
|
66
86
|
|
67
87
|
private
|
@@ -79,7 +99,7 @@ module SublimeSunippetter
|
|
79
99
|
def get_args_names(method)
|
80
100
|
args = method.args
|
81
101
|
args_names = ' '
|
82
|
-
args.each_with_index {|a, i|args_names << "${#{i + 1}:#{a}}, "}
|
102
|
+
args.each_with_index { |a, i|args_names << "${#{i + 1}:#{a}}, " }
|
83
103
|
args_names.chop!.chop! unless args.empty?
|
84
104
|
end
|
85
105
|
|
@@ -96,6 +116,10 @@ end
|
|
96
116
|
return '' unless method.has_brace_block
|
97
117
|
' { |${9:args}|${0:block} }'
|
98
118
|
end
|
119
|
+
|
120
|
+
def get_require_snippet(require_file, scope)
|
121
|
+
ERB.new(REQUIRE_SUNIPPET_TEMPLATE).result(binding)
|
122
|
+
end
|
99
123
|
end
|
100
124
|
|
101
125
|
class SunippetterError < StandardError; end
|
@@ -4,13 +4,14 @@ require 'target_method'
|
|
4
4
|
module SublimeSunippetter
|
5
5
|
# Dsl. this is dsl for Sunippetdefine.
|
6
6
|
class Dsl
|
7
|
-
attr_accessor :target_methods, :_scope, :_output_path
|
7
|
+
attr_accessor :target_methods, :_scope, :_output_path, :requires
|
8
8
|
|
9
9
|
# init default values
|
10
10
|
def initialize
|
11
11
|
@target_methods = []
|
12
12
|
@_scope = 'source.ruby'
|
13
13
|
@_output_path = './'
|
14
|
+
@requires = []
|
14
15
|
end
|
15
16
|
|
16
17
|
# add sunippet information
|
@@ -27,6 +28,10 @@ module SublimeSunippetter
|
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
31
|
+
def add_requires(*filenames)
|
32
|
+
@requires = filenames
|
33
|
+
end
|
34
|
+
|
30
35
|
# set sunippet scope
|
31
36
|
def scope(_scope)
|
32
37
|
return if _scope.nil?
|
@@ -67,6 +67,28 @@ describe SublimeSunippetter::Dsl do
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
cases_add_requires = [
|
71
|
+
{
|
72
|
+
case_no: 1,
|
73
|
+
require_files: ['hoge', 'hige'],
|
74
|
+
expecteds: ['hoge', 'hige']
|
75
|
+
},
|
76
|
+
]
|
77
|
+
|
78
|
+
cases_add_requires.each do |c|
|
79
|
+
it "#add_requires case_no=#{c[:case_no]} add require_files=#{c[:require_files]}" do
|
80
|
+
# given
|
81
|
+
dsl = SublimeSunippetter::Dsl.new
|
82
|
+
|
83
|
+
# when
|
84
|
+
dsl.add_requires c[:require_files][0], c[:require_files][1]
|
85
|
+
actual = dsl.requires
|
86
|
+
|
87
|
+
# then
|
88
|
+
expect(actual).to eq(c[:expecteds])
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
70
92
|
cases_scope = [
|
71
93
|
{
|
72
94
|
case_no: 1,
|
@@ -32,13 +32,22 @@ add :hige?
|
|
32
32
|
add :hoge1, "block@b"
|
33
33
|
add :hoge2, "block@d"
|
34
34
|
add :hoge3, :args1, :args2, "block@b"
|
35
|
+
add_requires 'hoge', 'hige'
|
35
36
|
EOS
|
36
37
|
|
37
38
|
cases_generate_sunippets = [
|
38
39
|
{
|
39
|
-
|
40
|
-
|
41
|
-
|
40
|
+
case_no: 1,
|
41
|
+
sunippetdefine: GENERATE_SUNIPPETS_CASE,
|
42
|
+
output_file_names: [
|
43
|
+
'hoge.sublime-snippet',
|
44
|
+
'hige.sublime-snippet',
|
45
|
+
'hoge1.sublime-snippet',
|
46
|
+
'hoge2.sublime-snippet',
|
47
|
+
'hoge3.sublime-snippet',
|
48
|
+
'require_hoge.sublime-snippet',
|
49
|
+
'require_hige.sublime-snippet',
|
50
|
+
],
|
42
51
|
}
|
43
52
|
]
|
44
53
|
|
data/sublime_sunippetter.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sublime_sunippetter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-01-
|
12
|
+
date: 2014-01-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &21316788 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.18.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *21316788
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &21314676 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.3'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *21314676
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &21338628 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *21338628
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &21337452 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,7 +54,18 @@ dependencies:
|
|
54
54
|
version: 2.14.1
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *21337452
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: simplecov
|
60
|
+
requirement: &21336876 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 0.8.2
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *21336876
|
58
69
|
description: SublimeSunippetter is generate Sublime Text2 simple sunippet from Sunippetfile
|
59
70
|
DSL.
|
60
71
|
email:
|