class AngularScaffold::ScaffoldGenerator

Public Instance Methods

columns() click to toggle source
# File lib/generators/angular_scaffold/scaffold/scaffold_generator.rb, line 26
def columns
  begin
    excluded_column_names = %w[id _id _type created_at updated_at]
    @model_name.constantize.columns.
      reject{|c| excluded_column_names.include?(c.name) }.
      collect{|c| ::Rails::Generators::GeneratedAttribute.
              new(c.name, c.type)}
  rescue NoMethodError
    @model_name.constantize.fields.
      collect{|c| c[1]}.
      reject{|c| excluded_column_names.include?(c.name) }.
      collect{|c|
        ::Rails::Generators::GeneratedAttribute.
          new(c.name, c.type.to_s)}
  end
end
generate() click to toggle source
# File lib/generators/angular_scaffold/scaffold/scaffold_generator.rb, line 43
    def generate
      remove_file "app/assets/stylesheets/scaffolds.css.scss"
      # append_to_file "app/assets/javascripts/application.js",
      #   "//= require #{@plural_model_name}_controller\n"
      # append_to_file "app/assets/javascripts/application.js",
      #   "//= require #{@plural_model_name}\n"
#       if language_option == 'coffeescript'
#         insert_into_file "app/assets/javascripts/routes.coffee.erb",
#           ", \'#{@plural_model_name}\'", :after => "'ngCookies'"
#         insert_into_file "app/assets/javascripts/routes.coffee.erb",
# %{when("/#{@plural_model_name}",
#     controller: #{@controller}IndexCtrl
#     templateUrl: '<%= asset_path(\"#{@plural_model_name}/index.html\") %>'
#   ).when("/#{@plural_model_name}/new",
#     controller: #{@controller}CreateCtrl
#     templateUrl: '<%= asset_path(\"#{@plural_model_name}/new.html\") %>'
#   ).when("/#{@plural_model_name}/:id",
#     controller: #{@controller}ShowCtrl
#     templateUrl: '<%= asset_path(\"#{@plural_model_name}/show.html\") %>'
#   ).when("/#{@plural_model_name}/:id/edit",
#     controller: #{@controller}EditCtrl
#     templateUrl: '<%= asset_path(\"#{@plural_model_name}/edit.html\") %>'
#   ).}, :before => 'otherwise'
#       else
        insert_into_file "app/assets/javascripts/angular-app/app.js.erb",
          ", '#{@plural_model_name}'", :after => "'ngCookies'"
        insert_into_file "app/assets/javascripts/angular-app/app.js.erb",
%{\n    when('/#{@plural_model_name}', {controller:#{@controller}IndexCtrl,
      templateUrl:'<%= asset_path("#{@plural_model_name}/index.html") %>'}).
    when('/#{@plural_model_name}/new', {controller:#{@controller}CreateCtrl,
      templateUrl:'<%= asset_path("#{@plural_model_name}/new.html") %>'}).
    when('/#{@plural_model_name}/:id', {controller:#{@controller}ShowCtrl,
      templateUrl:'<%= asset_path("#{@plural_model_name}/show.html") %>'}).
    when('/#{@plural_model_name}/:id/edit', {controller:#{@controller}EditCtrl,
      templateUrl:'<%= asset_path("#{@plural_model_name}/edit.html") %>'}).}, :before => 'otherwise'
      # end
      
      inject_into_class "app/controllers/#{@plural_model_name}_controller.rb",
        "#{@controller}Controller".constantize, "respond_to :json\n"

      template "new.html.erb",
        "app/assets/templates/#{@plural_model_name}/new.html.erb"
      template "edit.html.erb",
        "app/assets/templates/#{@plural_model_name}/edit.html.erb"
      template "show.html.erb",
        "app/assets/templates/#{@plural_model_name}/show.html.erb"
      template "index.html.erb",
        "app/assets/templates/#{@plural_model_name}/index.html.erb"

      model_index_link = "\n<li><%= link_to \'#{@controller_name}\', #{@plural_model_name}_path  %></li>"
      
      # insert_into_file "app/views/layouts/application.html.erb",  model_index_link,
      #   after: "<!-- sidebar menu models -->"

      insert_into_file "app/views/layouts/application.html.erb",  model_index_link,
        after: "<!-- main menu models -->"
      
      # if language_option == 'coffeescript'
      #   remove_file "app/assets/javascripts/#{@plural_model_name}.js"
      #   remove_file "app/assets/javascripts/#{@plural_model_name}_controller.js"
      #   template "plural_model_name.js.coffee", "app/assets/javascripts/#{@plural_model_name}.js.coffee"
      #   template "plural_model_name_controller.js.coffee",
      #     "app/assets/javascripts/#{@plural_model_name}_controller.js.coffee"
      # else
        # remove_file "app/assets/javascripts/#{@plural_model_name}.js.coffee"
        # remove_file "app/assets/javascripts/#{@plural_model_name}_controller.js.coffee"
        template "plural_model_name.js", "app/assets/javascripts/angular-app/service/#{@plural_model_name}.js"
        template "plural_model_name_controller.js",
          "app/assets/javascripts/angular-app/controller/#{@plural_model_name}_controller.js"
        # remove the default .js.coffee file added by rails.
        # remove_file "app/assets/javascripts/#{@plural_model_name}.js.coffee"
      # end
    end
init_vars() click to toggle source
# File lib/generators/angular_scaffold/scaffold/scaffold_generator.rb, line 19
def init_vars
  @model_name = controller_name.singularize #"Post"
  @controller = controller_name #"Posts"
  @resource_name = @model_name.demodulize.underscore #post
  @plural_model_name = @resource_name.pluralize #posts
end
language_option() click to toggle source
# File lib/generators/angular_scaffold/scaffold/scaffold_generator.rb, line 10
def language_option
  # if File.exist?("app/assets/javascripts/routes.js.erb")
    answer = 'javascript'
  # else
  #   answer = 'coffeescript'
  # end
  answer
end