dotremap 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2565edd99e70d87d291922f50fac172786cda851
4
- data.tar.gz: 14c619762f9d4bb688c9b49339ca7253fd9fd638
3
+ metadata.gz: 34a3201ef04414e04675f8af66cb93f57a9e25e9
4
+ data.tar.gz: 166885fbc52cbbcceee17877364759007bca8a08
5
5
  SHA512:
6
- metadata.gz: 29bd9f928e56fa0f9362f8ec135e819f14bd5619a0cd2bd3c0b15a2d6fff3375ee240e1f497d2d83a13ba481543bac5b54981ca5ecc66230c9ea736f84951e25
7
- data.tar.gz: a5385502fce80e93a251e5ea19f64966f0e2018f8d7b5b8bed2aecd74c5e002f7ca8ce730f83417378a6f1620487ba0fe163fa36be78c11e173a11462c6c9b31
6
+ metadata.gz: d04f733191b79d8e44cfbd7e54c1822a9b53fde2754211500ee7bd31f379f4dc46736a9f3169007995621f193c4183f4b65ec415478a9e43360b3297493c4726
7
+ data.tar.gz: 984a5717618fdfd4691d2b6a15ea21871c510b2e6d4a156dcb43284bcfe9759545accdb06e206696806ebe3b4a82e97bb285c725d4372db5b66b41c982001f3a
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Dotremap::VERSION
9
9
  spec.authors = ["Takashi Kokubun"]
10
10
  spec.email = ["takashikkbn@gmail.com"]
11
- spec.summary = %q{Lightweight keyremap configuration DSL}
12
- spec.description = %q{Lightweight keyremap configuration DSL for Karabiner}
13
- spec.homepage = "https://github.com/k0kubun/dotremap"
11
+ spec.summary = %q{This gem is moved to karabiner gem. https://github.com/k0kubun/karabiner-dsl}
12
+ spec.description = %q{This gem is moved to karabiner gem. https://github.com/k0kubun/karabiner-dsl}
13
+ spec.homepage = "https://github.com/k0kubun/karabiner-dsl"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -0,0 +1,15 @@
1
+ require "forwardable"
2
+ require "dotremap/namespace"
3
+
4
+ class Dotremap::Config
5
+ extend Forwardable
6
+
7
+ def_delegator :@parent, :item
8
+ def_delegator :@parent, :group
9
+
10
+ def initialize(name)
11
+ @name = name
12
+ end
13
+
14
+ attr_writer :parent
15
+ end
@@ -1,5 +1,6 @@
1
1
  require "dotremap/namespace"
2
2
  require "dotremap/appdef"
3
+ require "dotremap/config"
3
4
  require "dotremap/item"
4
5
  require "dotremap/group"
5
6
  require "dotremap/dsl/group"
@@ -13,6 +14,13 @@ module Dotremap::DSL::Root
13
14
  add_child(group)
14
15
  end
15
16
 
17
+ def config(name, &block)
18
+ config = Dotremap::Config.new(name)
19
+ config.parent = self
20
+ config.instance_exec(&block)
21
+ add_config(config)
22
+ end
23
+
16
24
  def appdef(appname = '', options = {})
17
25
  appdef = Dotremap::Appdef.new(appname, options)
18
26
  add_child(appdef)
@@ -1,4 +1,6 @@
1
1
  class Dotremap::Property
2
+ include Dotremap::XmlTree
3
+
2
4
  def initialize(attr, value, options = {})
3
5
  @attr = attr.to_s
4
6
  @value = value
@@ -6,6 +6,10 @@ class Dotremap::Root
6
6
  include Dotremap::XmlTree
7
7
  include Dotremap::DSL::Root
8
8
 
9
+ def initialize
10
+ @configs = []
11
+ end
12
+
9
13
  def to_xml
10
14
  Dotremap::InvokeHistory.registered_applications.each do |application|
11
15
  vkopenurldef = Dotremap::Vkopenurldef.new(application)
@@ -17,4 +21,10 @@ class Dotremap::Root
17
21
  super(1),
18
22
  ].join("\n")
19
23
  end
24
+
25
+ private
26
+
27
+ def add_config(config)
28
+ @configs << config
29
+ end
20
30
  end
@@ -1,3 +1,3 @@
1
1
  class Dotremap
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -1,8 +1,14 @@
1
1
  module Dotremap::XmlTree
2
+ attr_reader :parent
3
+
2
4
  def add_child(*objects)
3
5
  objects.each do |object|
4
6
  childs << object
5
7
  end
8
+
9
+ childs.each do |child|
10
+ child.parent = self
11
+ end
6
12
  end
7
13
 
8
14
  def search_childs(klass)
@@ -20,9 +26,17 @@ module Dotremap::XmlTree
20
26
  ].join("\n")
21
27
  end
22
28
 
29
+ protected
30
+
31
+ attr_writer :parent
32
+
23
33
  private
24
34
 
25
35
  def childs
26
36
  @childs ||= []
27
37
  end
38
+
39
+ def parent
40
+ @parent
41
+ end
28
42
  end
@@ -246,7 +246,7 @@ describe Dotremap do
246
246
  EOS
247
247
  end
248
248
 
249
- it "accepts nested items" do
249
+ it "accepts group items" do
250
250
  prepare_dotremap(<<-EOS)
251
251
  group "Option" do
252
252
  item "First" do
@@ -276,4 +276,60 @@ describe Dotremap do
276
276
  </root>
277
277
  EOS
278
278
  end
279
+
280
+ context "when items are surrounded by config" do
281
+ it "accepts cmd combination" do
282
+ prepare_dotremap(<<-EOS)
283
+ config "Default" do
284
+ item "Command+A to Command+B" do
285
+ remap "Cmd-A", to: "Cmd-B"
286
+ end
287
+ end
288
+ EOS
289
+
290
+ expect_result(<<-EOS.unindent)
291
+ <?xml version="1.0"?>
292
+ <root>
293
+ <item>
294
+ <name>Command+A to Command+B</name>
295
+ <identifier>remap.command_a_to_command_b</identifier>
296
+ <autogen>__KeyToKey__ KeyCode::A, VK_COMMAND, KeyCode::B, VK_COMMAND</autogen>
297
+ </item>
298
+ </root>
299
+ EOS
300
+ end
301
+
302
+ it "accepts group items" do
303
+ prepare_dotremap(<<-EOS)
304
+ config "Original" do
305
+ group "Option" do
306
+ item "First" do
307
+ identifier "option.option_first"
308
+ end
309
+
310
+ item "Second" do
311
+ identifier "option.option_second"
312
+ end
313
+ end
314
+ end
315
+ EOS
316
+
317
+ expect_result(<<-EOS.unindent)
318
+ <?xml version="1.0"?>
319
+ <root>
320
+ <item>
321
+ <name>Option</name>
322
+ <item>
323
+ <name>First</name>
324
+ <identifier>option.option_first</identifier>
325
+ </item>
326
+ <item>
327
+ <name>Second</name>
328
+ <identifier>option.option_second</identifier>
329
+ </item>
330
+ </item>
331
+ </root>
332
+ EOS
333
+ end
334
+ end
279
335
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotremap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-01 00:00:00.000000000 Z
11
+ date: 2014-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,7 +80,7 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.0'
83
- description: Lightweight keyremap configuration DSL for Karabiner
83
+ description: This gem is moved to karabiner gem. https://github.com/k0kubun/karabiner-dsl
84
84
  email:
85
85
  - takashikkbn@gmail.com
86
86
  executables:
@@ -101,6 +101,7 @@ files:
101
101
  - img/enabled.png
102
102
  - lib/dotremap.rb
103
103
  - lib/dotremap/appdef.rb
104
+ - lib/dotremap/config.rb
104
105
  - lib/dotremap/dsl/group.rb
105
106
  - lib/dotremap/dsl/item.rb
106
107
  - lib/dotremap/dsl/root.rb
@@ -122,7 +123,7 @@ files:
122
123
  - spec/lib/dotremap/remap_spec.rb
123
124
  - spec/lib/dotremap_spec.rb
124
125
  - spec/spec_helper.rb
125
- homepage: https://github.com/k0kubun/dotremap
126
+ homepage: https://github.com/k0kubun/karabiner-dsl
126
127
  licenses:
127
128
  - MIT
128
129
  metadata: {}
@@ -145,7 +146,7 @@ rubyforge_project:
145
146
  rubygems_version: 2.2.2
146
147
  signing_key:
147
148
  specification_version: 4
148
- summary: Lightweight keyremap configuration DSL
149
+ summary: This gem is moved to karabiner gem. https://github.com/k0kubun/karabiner-dsl
149
150
  test_files:
150
151
  - spec/lib/dotremap/appdef_spec.rb
151
152
  - spec/lib/dotremap/karabiner_spec.rb