everyday_thor_util 1.0.1 → 1.1.0

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: c4f2e67f95ed49dbf5f634fc2dc2bbe8609bda51
4
- data.tar.gz: 4a053d295f205fdf0ec6ea5fd92a2bf66d382741
3
+ metadata.gz: ffc5ff63f2ce4542d3a5c0a10e163d3d0f1b241e
4
+ data.tar.gz: a941a5678a0e779462fcf59abf994221d44621b1
5
5
  SHA512:
6
- metadata.gz: c65c35408075c9a4f5f5157864dfeca0ba81efad5025a6084fd2ee15f595cbedf78fb73ef888c9862e012839a36dd8662ee2ef2da1dfb8242aecf500215e9eaa
7
- data.tar.gz: d0c78860066555b04028a69c9664319886dd0eb3d0a525400f3ebe12ca0ce4722bf2b14f561019d962bae66693eee56a47773993beed98c45b63a3b3d1a163c1
6
+ metadata.gz: 3f0c50e48862fbc77bacb630d4186fca3200e634ce58379cede6cb5e0918a907d1296c0d7b44d6e5184f219330ac73f1c804fcaa4928f96119a570e26572848c
7
+ data.tar.gz: f39774194f35caa001285f6acacb15ad3d39931bf105521752ac2eff09db38d9320dc9d254981123a8dbb06ab4531042d1f001d3cd409be11f8f9e6fc0889d8f
@@ -8,6 +8,9 @@ class Thor
8
8
  def create_method(name, &block)
9
9
  self.send(:define_method, name, &block)
10
10
  end
11
+ def dup_method(new_name, old_name)
12
+ self.send(:alias_method, new_name, old_name)
13
+ end
11
14
  end
12
15
  end
13
16
 
@@ -44,6 +47,7 @@ module EverydayThorUtil
44
47
  desc = v[:options][:desc]
45
48
  long_desc = v[:options][:long_desc]
46
49
  name = v[:options][:name]
50
+ aliases = v[:options][:aliases]
47
51
  if id && name
48
52
  has_children = list.any? { |v2| v2[:options][:parent] == id }
49
53
  if has_children
@@ -59,12 +63,28 @@ module EverydayThorUtil
59
63
  parent_class.desc short_desc, desc if short_desc && desc
60
64
  parent_class.long_desc long_desc if long_desc
61
65
  parent_class.subcommand name, command_class
66
+ aliases.each { |a|
67
+ command_class2 = Class.new(Thor)
68
+ command_class2.namespace a
69
+ Plugins.get flag_symbol, command_class2, id, true
70
+ Plugins.get command_symbol, command_class2, id
71
+ Plugins.get flag_symbol, parent_class, id, false
72
+ parent_class.desc short_desc.gsub(/^#{name}/, a), desc if short_desc && desc
73
+ parent_class.long_desc long_desc if long_desc
74
+ parent_class.subcommand a, command_class2
75
+ } if aliases
62
76
  end
63
77
  elsif v[:block]
64
78
  Plugins.get flag_symbol, parent_class, id, false
65
79
  parent_class.desc short_desc, desc if short_desc && desc
66
80
  parent_class.long_desc long_desc if long_desc
67
81
  parent_class.create_method(name.to_sym, &v[:block])
82
+ aliases.each { |a|
83
+ Plugins.get flag_symbol, parent_class, id, false
84
+ parent_class.desc short_desc.gsub(/^#{name}/, a), desc if short_desc && desc
85
+ parent_class.long_desc long_desc if long_desc
86
+ parent_class.dup_method a.to_sym, name.to_sym
87
+ } if aliases
68
88
  end
69
89
  end
70
90
  }
@@ -1,3 +1,3 @@
1
1
  module EverydayThorUtil
2
- VERSION = '1.0.1'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: everyday_thor_util
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Henderson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-12 00:00:00.000000000 Z
11
+ date: 2014-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler