twiddler-utils 0.0.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.
@@ -0,0 +1,17 @@
1
+ puts Dir::pwd
2
+ require 'test/unit'
3
+ begin
4
+ require 'spec'
5
+ rescue LoadError
6
+ false
7
+ end
8
+
9
+ class RSpecTest < Test::Unit::TestCase
10
+ def test_that_rspec_is_available
11
+ assert_nothing_raised("\n\n * RSpec isn't available - please run: gem install rspec *\n\n"){ ::Spec }
12
+ end
13
+
14
+ def test_that_specs_pass
15
+ assert(system(*%w{spec -f e -p **/*.rb spec}),"\n\n * Specs failed *\n\n")
16
+ end
17
+ end
@@ -0,0 +1,4 @@
1
+ require 'rspec'
2
+ require 'spec_help/ungemmer'
3
+
4
+ #Ungemmer::ungem_gemspec
@@ -0,0 +1,36 @@
1
+ class Ungemmer
2
+ def self.ungem(*names)
3
+ deps = names.map do |name|
4
+ Gem::Dependency.new(name, nil)
5
+ end
6
+
7
+ deps.each do |dep|
8
+ Gem.source_index.search(dep).each do |gemspec|
9
+ puts " ** Ungemming #{gemspec.full_name} **"
10
+ Gem.source_index.remove_spec(gemspec.full_name)
11
+ end
12
+ end
13
+
14
+ Gem.instance_eval do
15
+ if defined? Gem::MUTEX
16
+ Gem::MUTEX.synchronize do
17
+ @searcher = nil
18
+ end
19
+ else
20
+ @searcher = nil
21
+ end
22
+ end
23
+ end
24
+
25
+ def self.ungem_gemspec
26
+ Dir[File::expand_path(__FILE__ + "../../../*.gemspec")].each do |gemspec_path|
27
+ puts "Ungemming based on #{gemspec_path}"
28
+ begin
29
+ spec = Gem::Specification::load(gemspec_path)
30
+ Ungemmer::ungem(spec.name)
31
+ rescue LoadError
32
+ puts "Couldn't load #{gemspec_path}"
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,38 @@
1
+ % cols = 4
2
+ % chords = []
3
+ % chords += keytable.tagged(:normal).map{|key| keyboard.find{|chord|
4
+ % key === chord and chord[0][1].empty?}
5
+ %}
6
+ % chords += keytable.find_all{|key| key.has_mod?("Shift")}.map{|key| keyboard.find{|chord|
7
+ % key === chord and (chord[0][1] == ["RSft"] or chord[0][1] == ["LSft"])}
8
+ %}
9
+ % chords += keytable.tagged(:special).map{|key| keyboard.find{|chord|
10
+ % key === chord and chord[0][1].empty?}
11
+ %}
12
+ % chords += keyboard.find_all{|chord| !chord.single?}
13
+ % chords.compact!
14
+ %
15
+ % columns = []
16
+ % chords.map! do |chord|
17
+ % rendered= [ chord.render_action, chord.render_keys]
18
+ % if rendered[0] =~ /^[a-z]$/
19
+ % rendered[0].upcase!
20
+ % end
21
+ % rendered
22
+ %end
23
+
24
+ % chords.each_slice((chords.length / cols.to_f).ceil){|col| columns << col}
25
+ % act_widths = columns.map{|col| col.map{|line| line[0].length}.max}
26
+ % key_widths = columns.map{|col| col.map{|line| line[1].length}.max}
27
+ % columns[0].zip(*columns[1..-1]).each_with_index do |row, index|
28
+ % row.zip(act_widths, key_widths).each do |chord, aw, kw|
29
+ % unless chord.nil?
30
+ <%= chord[0].rjust(aw) %>: <%= chord[1].ljust(kw + 2)%>
31
+ % end
32
+ % end
33
+
34
+ % end
35
+
36
+ %mouse.each do |chord|
37
+ <%= chord.render %>
38
+ %end
@@ -0,0 +1,51 @@
1
+ chord_data = {
2
+ keyboard = {
3
+ % keyboard.each do |chord|
4
+ {
5
+ chord = {
6
+ mods = { num = <%= chord.mods[:num] %>, alt = <%= chord.mods[:alt] %>, shift = <%= chord.mods[:shift] %>, ctrl = <%= chord.mods[:ctrl] %> };
7
+ rows = { <% chord.rows.each do |row| %>
8
+ <%if row == :open %>"O"; <%end%>
9
+ <%if row == :left %>"L"; <%end%>
10
+ <%if row == :right %>"R"; <%end%>
11
+ <%if row == :middle %>"M"; <%end%>
12
+ % end
13
+ }
14
+ },
15
+ data = <%= chord.render_action.inspect %>
16
+ };
17
+ % end
18
+ };
19
+ mouse = {
20
+ % mouse.each do |chord|
21
+ {
22
+ chord = {
23
+ mods = { num = <%= chord.mods[:num] %>, alt = <%= chord.mods[:alt] %>, shift = <%= chord.mods[:shift] %>, ctrl = <%= chord.mods[:ctrl] %> };
24
+ rows = { <% chord.rows.each do |row| %>
25
+ <%if row == :open %>"O"; <%end%>
26
+ <%if row == :left %>"L"; <%end%>
27
+ <%if row == :right %>"R"; <%end%>
28
+ <%if row == :middle %>"M"; <%end%>
29
+ % end
30
+ }
31
+ },
32
+ action = {
33
+ buttons = { <% if chord.buttons[:left] %>Left; <% end %>
34
+ <%if chord.buttons[:middle]%>Middle; <%end%>
35
+ <%if chord.buttons[:right]%>Right; <%end%>
36
+ }; modifiers = { <%if chord.mods[:ctrl]%>Ctrl; <% end %>
37
+ <%if chord.mods[:alt]%>Alt; <% end %>
38
+ <%if chord.mods[:shift]%>Shift; <% end %>
39
+ <%if chord.mods[:toggle]%>Tgl; <% end %>
40
+ <%if chord.mods[:double]%>Dbl; <% end %>
41
+ }
42
+ }
43
+ };
44
+ % end
45
+ };
46
+ config = {
47
+ raw = <%= configs[:raw].inspect %>
48
+ }
49
+ }
50
+
51
+ return chord_data
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: twiddler-utils
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
11
+ platform: ruby
12
+ authors:
13
+ - Judson Lester
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-03 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rake-rubygems
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 23
30
+ segments:
31
+ - 0
32
+ - 2
33
+ - 0
34
+ version: 0.2.0
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: hanna
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 27
46
+ segments:
47
+ - 0
48
+ - 1
49
+ - 0
50
+ version: 0.1.0
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: mailfactory
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 7
62
+ segments:
63
+ - 1
64
+ - 4
65
+ - 0
66
+ version: 1.4.0
67
+ type: :development
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ hash: 3
78
+ segments:
79
+ - 2
80
+ - 0
81
+ version: "2.0"
82
+ type: :development
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
85
+ name: bundler
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ hash: 23
93
+ segments:
94
+ - 1
95
+ - 0
96
+ - 0
97
+ version: 1.0.0
98
+ type: :development
99
+ version_requirements: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ name: rcov
102
+ prerelease: false
103
+ requirement: &id006 !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ hash: 3
109
+ segments:
110
+ - 0
111
+ version: "0"
112
+ type: :development
113
+ version_requirements: *id006
114
+ description: " Some tools for working with config files for the Twiddler2 chording keyboard.\n\n If you don't have a Twiddler, you probably don't care.\n\n twid-utils cheatsheet <config>\n"
115
+ email:
116
+ - nyarly@gmail.com
117
+ executables:
118
+ - twid-utils
119
+ extensions: []
120
+
121
+ extra_rdoc_files:
122
+ - doc/README
123
+ - doc/Specifications
124
+ - doc/coverage/rcov.js
125
+ - doc/coverage/lib-twiddler-rendering_rb.html
126
+ - doc/coverage/jquery-1.3.2.min.js
127
+ - doc/coverage/index.html
128
+ - doc/coverage/lib-twiddler-parser_rb.html
129
+ - doc/coverage/jquery.tablesorter.min.js
130
+ - doc/coverage/lib-twiddler-target_builder_rb.html
131
+ - doc/coverage/lib-twiddler-config_rb.html
132
+ - doc/coverage/lib-twiddler-lint_rb.html
133
+ - doc/coverage/screen.css
134
+ - doc/coverage/print.css
135
+ files:
136
+ - templates/lua.erb
137
+ - templates/cheatsheet.erb
138
+ - lib/twiddler/rendering.rb
139
+ - lib/twiddler/config.rb
140
+ - lib/twiddler/parser.rb
141
+ - lib/twiddler/lint.rb
142
+ - lib/twiddler/target_builder.rb
143
+ - bin/twid-utils
144
+ - doc/README
145
+ - spec_help/spec_helper.rb
146
+ - spec_help/gem_test_suite.rb
147
+ - spec_help/ungemmer.rb
148
+ - spec_help/file-sandbox.rb
149
+ - spec_help/fixtures/TWIDDLER.CFG
150
+ - doc/Specifications
151
+ - doc/coverage/rcov.js
152
+ - doc/coverage/lib-twiddler-rendering_rb.html
153
+ - doc/coverage/jquery-1.3.2.min.js
154
+ - doc/coverage/index.html
155
+ - doc/coverage/lib-twiddler-parser_rb.html
156
+ - doc/coverage/jquery.tablesorter.min.js
157
+ - doc/coverage/lib-twiddler-target_builder_rb.html
158
+ - doc/coverage/lib-twiddler-config_rb.html
159
+ - doc/coverage/lib-twiddler-lint_rb.html
160
+ - doc/coverage/screen.css
161
+ - doc/coverage/print.css
162
+ has_rdoc: true
163
+ homepage: http://twiddler-utils.rubyforge.org/
164
+ licenses:
165
+ - MIT
166
+ post_install_message: Actual specs are coming soon for this guy.
167
+ rdoc_options:
168
+ - --inline-source
169
+ - --main
170
+ - doc/README
171
+ - --title
172
+ - twiddler-utils-0.0.3 RDoc
173
+ require_paths:
174
+ - lib/
175
+ required_ruby_version: !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ hash: 3
181
+ segments:
182
+ - 0
183
+ version: "0"
184
+ required_rubygems_version: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ hash: 3
190
+ segments:
191
+ - 0
192
+ version: "0"
193
+ requirements: []
194
+
195
+ rubyforge_project: twiddler-utils
196
+ rubygems_version: 1.4.2
197
+ signing_key:
198
+ specification_version: 3
199
+ summary: Utils for working with Twiddler configs
200
+ test_files:
201
+ - spec_help/gem_test_suite.rb