Comments (5)
I made a workaround which is actually pretty decent.
def self.source_root
template_path = ENV['THOR_TEMPLATE_PATH'] ? File.join(ENV['THOR_TEMPLATE_PATH'], 'new-thor-task') : File.dirname(FILE)
File.join(template_path, 'templates')
end
.bash_profile
export TEMPLATE_PATH=~/Development/Languages/Ruby/Templates
export THOR_TEMPLATE_PATH=$TEMPLATE_PATH/thor
Then I just create a new directory for each thor task under THOR_TEMPLATE_PATH and then copy the templates dir into this dir, fx
THOR_TEMPLATE_PATH/my_thor_task/templates
I will now try to fork thor and patch it with this or a similar solution.
from thor.
The Thor repository root is at ~/.thor
(thor_root). Any directories inside thor_root are treated as task packages with a main.thor
expected.
~/.thor/thor.yaml
has pointers to your local thor projects, so they are not "truly" installed. There is a package option, but I'm not sure how to use it.
I have now added an option to deploy a task. This will create a task package, with the task code in a separate dir with a main.thor
file. To do this run
$ thor install lib/mythor.thor
This latest version expects the thor file and supporting ruby code to all reside in a lib
folder and any templates in a templates
folder
/my_task + lib - mythor.thor + templates
Enjoy!
from thor.
Yes, I hear your pain. We need to improve the thor install
urgently. In my Thor refactor, I haven't touched the Thor::Runner bit and it's a little bit falling behind the other features.
I've seen you've done a lot of work in your fork, but it's kinda of mixed. You are improving several parts and adding new features, so it makes hard to review.
Sorry, I should have reviewed it earlier but I'm quite busy lately. Are you interested in starting a new branch and port your Thor::Runner refactor? We can discuss the new features as we go.
If you don't have my private e-mail, please send me a message and I will reply! Thanks!
from thor.
Yeah, let us start a new branch. What should we call it? 'runner-upgrade' ?
from thor.
Closing since this is too old. If you still have the problem please let us know.
from thor.
Related Issues (20)
- How about supporting `Thor::CoreExt::HashWithIndifferentAccess#slice` method? HOT 3
- Better support for overriding options programmatically
- method_option does not correctly parsed HOT 3
- Calling `invoke` directly in RSpec breaks with required class_options, even when they are provided.
- Are there any plans to drop support for older versions of Ruby? HOT 2
- 'parse raises an error for unknown switches' test failure HOT 2
- Please Sign This Gem To Allow Verified Installations HOT 4
- Consider new release for Ruby 3.2 fixes? HOT 2
- Incorrect help for file_collision method without block HOT 2
- Default value not printed in help if option type boolean and default value is false HOT 2
- String Enums concatenate values when repeatable HOT 7
- Documentation Not Helpful HOT 5
- Wiki page for Actions has broken links to docs HOT 1
- HTTPS Issues HOT 1
- New release to fix "File unchanged!" warning? HOT 1
- directory action does not copy dotfiles HOT 1
- Commands that contain hyphens cannot be executed HOT 3
- Thor 1.3.0 No Longer calling a system exit HOT 1
- Ability to have `gsub_file` error if it didn't gsub anything
- String option is incorrectly passed HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from thor.