I have been thinking that there must be some better ways of doing
Rails plugin development than my current approach. Currently I tend to
have my plugin in one location as a gem and then link to it from some
fresh Rails 3 app, from the vendor/plugins folder, with a symlink.
Then I have to carry around the whole Rails 3 app as baggage for
development. What are some better options?
There must be some libraries, tools out there specifically to meet
this need?
Seems like various plugin developers each have their own setup for
doing this!?
I tend to use RSpec 2 for all my testing needs. How does rspec-rails
fit into this? Would it be better to use Steak or Cucumber for this?
Thanks.
Looking at Ryan B’s CanCan for inspiration
require ‘rspec’
require ‘rspec/autorun’
require ‘active_support’
require ‘active_record’
require ‘action_controller’
require ‘action_view’
require ‘rails3_plugin_toolbox’
RSpec.configure do |config|
config.mock_with :rr
end
require “spec_helper”
describe CanCan::ControllerAdditions do
before(:each) do
@controller_class = Class.new
@controller = @controller_class.new
stub(@controller).params { {} }
stub(@controller).current_user { :current_user }
mock(@controller_class).helper_method(:can?, :cannot?)
@controller_class.send(:include, CanCan::ControllerAdditions)
end
So here he uses a stub and mock approach…
I would like to use the approach described on Rails Dispatch:
module MyAddition
def hello
puts “Hello from MyAddition”
end
end
ActiveSupport.on_load(:action_view) do
include MyAddition
end
ActiveSupport.on_load(:action_controller) do
include MyAddition
end
Could I then spec sth. like this?
ActionController.methods.grep(/hello/).should_not be_empty
ActionView.methods.grep(/hello/).should_not be_empty
or how would I go about it?