Sha256: 4a663b5dd2b91432db45ef6ab9574a53631cdbfac3f76b357d6260051a280771
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
require 'rails/generators/base' require 'sugar-high/array' require 'active_support/inflector' require 'rails_artifactor' module CanTango module Generators class Base < ::Rails::Generators::Base def self.inherited(subclass) subclass.extend ClassMethods end module ClassMethods def can_actions [:create, :update, :manage, :read, :access] end end extend ClassMethods can_actions.each do |action| class_eval %{ class_option :#{action}, :type => :array, :default => [], :desc => "Models allowed to #{action}" } end protected can_actions.each do |action| class_eval %{ def #{action} options[:#{action}] end } end def rules_logic self.class.can_actions.map do |action| send(action).map do |c| "can(:#{action}, #{act_model(c)})" end.join("\n ") end.join("\n ") end def act_model name return ':all' if name == 'all' name.camelize end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cantango-0.8.0 | lib/generators/cantango/base.rb |