Sha256: fbc03b9ff069b4c6e45a34bcafe89776ce3f2fda03f6d23ac1a6dfbb26aa909b
Contents?: true
Size: 1.99 KB
Versions: 3
Compression:
Stored size: 1.99 KB
Contents
class SparklyGenerator < Rails::Generator::NamedBase # I'm still treating this as NamedBase because I'm not sure whether I'll need that in the future. def initialize(args, options = {}) #:nodoc: @options = options unless args.empty? which = args.first @type = which.downcase args << "generic" if nameless_type? end super(args, options) end def manifest record do |m| case @type when *nameless_types then send(@type, m) else raise ArgumentError, "Expected type to be one of #{nameless_types.to_sentence(:connector => 'or ')}" end end end private def help(m) m.directory 'doc' m.file 'help_file.txt', 'doc/sparkly_authentication.txt' logger.log '', File.read(File.join(File.dirname(__FILE__), 'templates/help_file.txt')) logger.quiet = true # we plan to tell the user the file has been saved, so why tell them twice? end def controllers(m) spawn_model_generator(m, Auth::Generators::ControllersGenerator) end def routes(m) spawn_model_generator(m, Auth::Generators::RouteGenerator) end def views(m) spawn_model_generator(m, Auth::Generators::ViewsGenerator) end def migrations(m) spawn_model_generator(m, Auth::Generators::MigrationGenerator) end def config(m) spawn_generator(m, Auth::Generators::ConfigurationGenerator, []) end def spawn_model_generator(manifest, type) each_model do |model| spawn_generator(manifest, type, model) end end def spawn_generator(manifest, type, args) generator = type.new(args, spawned_generator_options) generator.manifest.replay(manifest) end def each_model(&block) Auth.configuration.authenticated_models.each &block end def nameless_type? nameless_types.include? @type end def nameless_types %w(migrations config help views controllers) end def spawned_generator_options options.merge(:source => File.join(source_root), :destination => destination_root) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sparkly-auth-1.0.2 | generators/sparkly/sparkly_generator.rb |
sparkly-auth-1.0.1 | generators/sparkly/sparkly_generator.rb |
sparkly-auth-1.0.0 | generators/sparkly/sparkly_generator.rb |