Sha256: acb1705550d108b173466ebbf4576adabd81468ab44cad41e7ef671961e7a7d7

Contents?: true

Size: 1.64 KB

Versions: 3

Compression:

Stored size: 1.64 KB

Contents

require 'action_controller'
require 'active_record'

class ServiceGenerator < Rails::Generator::NamedBase

  def initialize(runtime_args, runtime_options = {})
     super
     usage if args.empty?

     @messagename = args.shift rescue usage
     @messagetype = args.shift rescue usage
     @messagefunc = args.shift rescue usage
     @responsemsg = args.shift rescue nil
     
     usage if @messagename==nil
     usage if @messagetype==nil
     usage if @messagefunc==nil
     
     # trim off : if they use it
     if @messagefunc[0] == 58
       @messagefunc = @messagefunc.slice(1..@messagefunc.length)
     end

     camel  = @messagename.camelize
     under  = camel.underscore

     @messageFile  = under.downcase + '_service.rb'
     @messageClass = camel + 'Service'
  end
  
  def usage_message
    File.read(File.join(File.dirname(__FILE__), 'USAGE')) rescue ''
  end

  def manifest
    record do |m|
      # Check for class naming collisions.
      m.class_collisions @messageClass

      # make sure we have a services dir
      m.directory File.join('app/services', class_path)
      
      responsetype = ''
      response = ''
      
      if @responsemsg
        responsetype = ", '#{@responsemsg}'"
        response = '{"success"=>true}'
      end

      # message handler template
      m.template 'service/templates/service.rb',
                  File.join('app/services',
                            class_path,
                            "#{@messageFile}"),
                            :assigns => {'messageclass'=>@messageClass, 'messagetype'=>@messagetype, 'messagefunc'=>@messagefunc, 'responsetype'=>responsetype, 'response'=>response}
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
appcelerator-2.0.1.1 service/service_generator.rb
appcelerator-2.0.2 service/service_generator.rb
seamless-1.0.0 service/service_generator.rb