- ➕ Added CreateLink class and #link_file method
- 0️⃣ Made Thor::Actions#run use system as default method for system calls
- 👍 Allow use of private methods from superclass as tasks
- ➕ Added mute(&block) method which allows to run block without any output
- ✂ Removed config[:pretend]
- 💻 Enabled underscores for command line switches
- ➕ Added Thor::Base.basename which is used by both Thor.banner and Thor::Group.banner
- 🗄 Deprecated invoke() without arguments
- Added :only and :except to check_unknown_options
- ➕ Added :lazy_default which is only triggered if a switch is given
- ➕ Added Thor::Shell::HTML
- ➕ Added subcommands
- Decoupled Thor::Group and Thor, so it's easier to vendor
- Added check_unknown_options! in case you want error messages to be raised in valid switches
- ⚙ run(command) should return the results of command
- Methods generated by attr_* are automatically not marked as tasks
- inject_into_file does not add the same content twice, unless :force is set
- ✂ Removed rr in favor to rspec mock framework
- 👌 Improved output for thor -T
- [#7] Do not force white color on status
- [#8] Yield a block with the filename on directory
- ➕ Added a rake compatibility layer. It allows you to use spec and rdoc tasks on Thor classes.
- BACKWARDS INCOMPATIBLE: aliases are not generated automatically anymore since it may cause wrong behavior in the invocation system.
thor help now show information about any class/task. All those calls are possible:
thor help describe thor help describe:amazing Or even with default namespaces:
thor help :spec
0️⃣ Thor::Runner now invokes the default task if none is supplied:
thor describe # invokes the default task, usually help
Thor::Runner now works with mappings:
thor describe -h
➕ Added some documentation and code refactoring.
- 🛠 Fixed some tiny issues that were introduced lately.
- Setting global method options on the initialize method works as expected: All other tasks will accept these global options in addition to their own.
- ➕ Added 'group' notion to Thor task sets (class Thor); by default all tasks are in the 'standard' group. Running 'thor -T' will only show the standard tasks - adding --all will show all tasks. You can also filter on a specific group using the --group option: thor -T --group advanced
- Generic improvements
- 👌 Improve Windows compatibility
- ⚡️ Update (incorrect) README and task.thor sample file
- Options hash is now frozen (once returned)
- 👍 Allow magic predicates on options object. For instance:
- ➕ Add support for :numeric type
- ♻️ BACKWARDS INCOMPATIBLE: Refactor Thor::Options. You cannot access shorthand forms in options hash anymore (for instance, options[:f])
- 👍 Allow specifying optional args with default values: method_options(:user => "mislav")
- Don't write options for nil or false values. This allows, for example, turning color off when running specs.
- 👷 Exit with the status of the spec command to help CI stuff out some.
- 🏁 Try to add Windows compatibility.
- BACKWARDS INCOMPATIBLE: options hash is now accessed as a property in your class and is not passed as last argument anymore
- 👍 Allow options at the beginning of the argument list as well as the end.
- 👉 Make options available with symbol keys in addition to string keys.
- 👍 Allow true to be passed to Thor#method_options to denote a boolean option.
- ⚠ If loading a thor file fails, don't give up, just print a warning and keep going.
- 🚩 Make sure that we re-raise errors if they happened further down the pipe than we care about.
- ⚡️ Only delete the old file on updating when the installation of the new one is a success
- 💎 Make it Ruby 1.8.5 compatible.
- Don't raise an error if a boolean switch is defined multiple times.
- 📜 Thor::Options now doesn't parse through things that look like options but aren't.
- ➕ Add URI detection to install task, and make sure we don't append ".thor" to URIs
- ➕ Add rake2thor to the gem binfiles.
- 👉 Make sure local Thorfiles override system-wide ones.