Sha256: 512b3aac99656ae3fd5c069be85a9dba442d02878d897bc4f61ca98d6cf14980

Contents?: true

Size: 1.77 KB

Versions: 4

Compression:

Stored size: 1.77 KB

Contents

# encoding: utf-8
require 'rails/generators'
require 'find'

module BackboneGenerator
  class NamespaceGenerator < ::Rails::Generators::Base
    source_root File.expand_path('../templates', __FILE__)
    desc "Setup a Backbone namespace"
    argument :raw_namespace, :type => :string, :required => true

    def setup_dir_structure
      Dir.glob(File.join(source_paths, "**/.gitkeep")) do |keep_path|
        template keep_path, keep_path.gsub(/^.*backbone_generator\/templates\//, "")
      end

      # build and require a namespace initializer
      template "app/assets/javascripts/%namespace%.coffee.tt", "app/assets/javascripts/%namespace%.coffee"
      path = File.join(destination_root, 'app/assets/javascripts/application.js')

      if behavior == :revoke  # destroy
        gsub_file path, /\/\/= require \.\/#{namespace}\n/, ''
      else
        regex_for_end_of_manifest_comments = /\/\/.*\n(\s|$)/
        gsub_file path, regex_for_end_of_manifest_comments do |match|
          match.sub /\n\s/, "\n//= require ./#{namespace}\n\n"
        end
      end
    end



    def print_tree
      tree = <<-TREE

      app/assets/javascripts/dashboard
      │   ├── collections
      │   ├── models
      │   ├── routes
      │   ├── templates
      │   └── views
      └── dashboard.coffee


      spec/javascripts/dashboard/
      ├── collections
      ├── factories
      ├── models
      └── views
      TREE
      say tree.gsub(/dashboard/, namespace).gsub(/widget/, model_name)
    end

    def namespace(classify=false)
      style = classify ?  :camelize : :underscore
      raw_namespace.send(style)
    end

    def model_name(classify=false); '__delte__' ;end
    def collection_name(classify=false); '__delte__' ;end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails-backbone-generator-0.1.8 lib/generators/backbone_generator/namespace_generator.rb
rails-backbone-generator-0.1.7 lib/generators/backbone_generator/namespace_generator.rb
rails-backbone-generator-0.1.6 lib/generators/backbone_generator/namespace_generator.rb
rails-backbone-generator-0.1.5 lib/generators/backbone_generator/namespace_generator.rb