everyday_thor_util 1.0.1 → 1.1.0

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.
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