thor_tasks 0.0.2 → 0.0.3
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.
- data/README.rdoc +38 -0
- data/lib/tasks/spec.thor +36 -9
- data/lib/thor_tasks/version.rb +1 -1
- data/spec/tasks/spec.thor_spec.rb +1 -0
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -5,3 +5,41 @@ Add the gem to your Gemfile:
|
|
5
5
|
Run bundle, and install the tasks into your app:
|
6
6
|
bundle
|
7
7
|
rails g thor_tasks:install
|
8
|
+
You can see a list of all the available tasks by running:
|
9
|
+
thor list
|
10
|
+
|
11
|
+
== Spork tasks
|
12
|
+
|
13
|
+
These tasks allow you to start, stop, and restart Spork as a background process
|
14
|
+
from a Bash console.
|
15
|
+
|
16
|
+
The tasks are:
|
17
|
+
thor spork:start
|
18
|
+
thor spork:restart
|
19
|
+
thor spork:stop
|
20
|
+
|
21
|
+
Since spork is being forked as a background process, once you start it, it will
|
22
|
+
take some time to load. During the time that Spork is loading, it will output
|
23
|
+
some text to the terminal. It's best just to wait until it's completely loaded
|
24
|
+
to continue.
|
25
|
+
|
26
|
+
== Spec tasks
|
27
|
+
|
28
|
+
The following tasks are helpers for running your RSpecs:
|
29
|
+
thor spec:all
|
30
|
+
thor spec:controller [NAME]
|
31
|
+
thor spec:helper [NAME]
|
32
|
+
thor spec:model [NAME]
|
33
|
+
thor spec:request [NAME]
|
34
|
+
thor spec:routing [NAME]
|
35
|
+
thor spec:view [CONTROLLER] [ACTION]
|
36
|
+
thor spec:list [TYPE]
|
37
|
+
|
38
|
+
Running any spec task without any options will run all the specs for that
|
39
|
+
category, with the exception of the list spec, which will list all the available
|
40
|
+
spec files. For the spec:view task, you can specify a controller, and an action.
|
41
|
+
If you specify a controller without an action, all the actions for that view
|
42
|
+
will run.
|
43
|
+
|
44
|
+
Running any spec with the option --bundle or -b will execute that task using
|
45
|
+
bundle exec.
|
data/lib/tasks/spec.thor
CHANGED
@@ -1,34 +1,53 @@
|
|
1
1
|
class Spec < Thor
|
2
2
|
include Thor::Actions
|
3
3
|
|
4
|
+
desc "all", "runs all your specs"
|
5
|
+
method_option :bundle, :type => :boolean, :aliases => "-b"
|
6
|
+
def all
|
7
|
+
b = options[:bundle] ? "bundle exec" : ""
|
8
|
+
run "rspec spec"
|
9
|
+
end
|
10
|
+
|
4
11
|
desc "controller [NAME]", "runs rspec for controllers"
|
12
|
+
method_option :bundle, :type => :boolean, :aliases => "-b"
|
5
13
|
def controller(name="*")
|
6
|
-
|
14
|
+
b = options[:bundle] ? "bundle exec" : ""
|
15
|
+
run "#{b} rspec spec/controllers/#{name}_controller_spec.rb"
|
7
16
|
end
|
8
17
|
|
9
18
|
desc "helper [NAME]", "runs rspec for helpers"
|
19
|
+
method_option :bundle, :type => :boolean, :aliases => "-b"
|
10
20
|
def helper(name = "*")
|
11
|
-
|
21
|
+
b = options[:bundle] ? "bundle exec" : ""
|
22
|
+
run "#{b} rspec spec/helpers/#{name}_helper_spec.rb"
|
12
23
|
end
|
13
24
|
|
14
25
|
desc "model [NAME]", "runs rspec for models"
|
26
|
+
method_option :bundle, :type => :boolean, :aliases => "-b"
|
15
27
|
def model(name = "*")
|
16
|
-
|
28
|
+
b = options[:bundle] ? "bundle exec" : ""
|
29
|
+
run "#{b} rspec spec/models/#{name}_spec.rb"
|
17
30
|
end
|
18
31
|
|
19
32
|
desc "request [NAME]", "runs rspec for requests"
|
33
|
+
method_option :bundle, :type => :boolean, :aliases => "-b"
|
20
34
|
def request(name = "*")
|
21
|
-
|
35
|
+
b = options[:bundle] ? "bundle exec" : ""
|
36
|
+
run "#{b} rspec spec/requests/#{name}_spec.rb"
|
22
37
|
end
|
23
38
|
|
24
39
|
desc "routing [NAME]", "runs rspec for routing"
|
40
|
+
method_option :bundle, :type => :boolean, :aliases => "-b"
|
25
41
|
def routing(name = "*")
|
26
|
-
|
42
|
+
b = options[:bundle] ? "bundle exec" : ""
|
43
|
+
run "#{b} rspec spec/routing/#{name}_spec.rb"
|
27
44
|
end
|
28
45
|
|
29
46
|
desc "view [CONTROLLER] [ACTION]", "runs rspec for views"
|
47
|
+
method_option :bundle, :type => :boolean, :aliases => "-b"
|
30
48
|
def view(controller = "*", action = "*")
|
31
|
-
|
49
|
+
b = options[:bundle] ? "bundle exec" : ""
|
50
|
+
run "#{b} rspec spec/views/#{controller}/#{action}*_spec.rb"
|
32
51
|
end
|
33
52
|
|
34
53
|
desc "list [TYPE}]", "lists specs for TYPE, see thor spec:list --help for more info."
|
@@ -46,10 +65,18 @@ class Spec < Thor
|
|
46
65
|
return
|
47
66
|
end
|
48
67
|
|
68
|
+
lastType = ""
|
69
|
+
currentType = ""
|
49
70
|
Dir["spec/#{name}/*_spec.rb"].each do |f|
|
50
|
-
|
51
|
-
|
52
|
-
|
71
|
+
spec = File.basename(f, "_spec.rb")
|
72
|
+
dir = File.dirname(f).split("/")
|
73
|
+
currentType = dir[dir.length-1]
|
74
|
+
spec = spec.rpartition("_")[0] if ['controllers', 'helpers', 'routing'].include? currentType
|
75
|
+
if currentType != lastType
|
76
|
+
print "\n\x1b[38;5;10m#{currentType}\x1b[0m\n"
|
77
|
+
lastType = currentType
|
78
|
+
end
|
79
|
+
puts " #{spec}"
|
53
80
|
end
|
54
81
|
end
|
55
82
|
end
|
data/lib/thor_tasks/version.rb
CHANGED