somatics3-generators 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +87 -13
- data/VERSION +1 -1
- data/bin/somatics +1 -0
- data/lib/generators/somatics/authenticated_controller/authenticated_controller_generator.rb +8 -8
- data/lib/generators/somatics/install/install_generator.rb +17 -4
- data/lib/generators/somatics/scaffold_controller/templates/controller.rb +1 -1
- data/lib/generators/somatics/settings/settings_generator.rb +82 -0
- data/lib/generators/somatics/settings_controller/USAGE +20 -0
- data/lib/generators/somatics/settings_controller/settings_controller_generator.rb +11 -0
- data/lib/generators/somatics/settings_controller/templates/builder_index.pdf.prawn +25 -0
- data/lib/generators/somatics/settings_controller/templates/builder_index.xls.builder +24 -0
- data/lib/generators/somatics/settings_controller/templates/builder_index.xml.builder +10 -0
- data/lib/generators/somatics/settings_controller/templates/controller.rb +80 -0
- data/lib/generators/somatics/settings_controller/templates/helper.rb +2 -0
- data/lib/generators/somatics/settings_controller/templates/locales_en.yml +9 -0
- data/lib/generators/somatics/settings_controller/templates/locales_zh-TW.yml +28 -0
- data/lib/generators/somatics/settings_controller/templates/migration.rb +17 -0
- data/lib/generators/somatics/settings_controller/templates/model.rb +54 -0
- data/lib/generators/somatics/settings_controller/templates/partial_bulk.html.erb +12 -0
- data/lib/generators/somatics/settings_controller/templates/partial_edit.html.erb +7 -0
- data/lib/generators/somatics/settings_controller/templates/partial_form.html.erb +15 -0
- data/lib/generators/somatics/settings_controller/templates/partial_list.html.erb +28 -0
- data/lib/generators/somatics/settings_controller/templates/partial_menu.html.erb +1 -0
- data/lib/generators/somatics/settings_controller/templates/partial_show.html.erb +13 -0
- data/lib/generators/somatics/settings_controller/templates/view_edit.html.erb +23 -0
- data/lib/generators/somatics/settings_controller/templates/view_index.html.erb +22 -0
- data/lib/generators/somatics/settings_controller/templates/view_new.html.erb +14 -0
- data/lib/generators/somatics/settings_controller/templates/view_show.html.erb +23 -0
- data/lib/somatics3-generators.rb +1 -0
- data/somatics3-generators.gemspec +25 -3
- data/templates/somatics.rb +5 -10
- metadata +45 -4
    
        data/README.rdoc
    CHANGED
    
    | @@ -1,17 +1,91 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            === Welcome to Somatics3
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            Somatics3 is next generation open source scaffolding template that kick-starts your next Rails project. 
         | 
| 4 | 
            +
            Active development has started in July 2010; new features, enhancements, and updates appear
         | 
| 5 | 
            +
            on daily basis.
         | 
| 4 6 |  | 
| 5 | 
            -
             | 
| 6 | 
            -
             
         | 
| 7 | 
            -
            * Fork the project.
         | 
| 8 | 
            -
            * Make your feature addition or bug fix.
         | 
| 9 | 
            -
            * Add tests for it. This is important so I don't break it in a
         | 
| 10 | 
            -
              future version unintentionally.
         | 
| 11 | 
            -
            * Commit, do not mess with rakefile, version, or history.
         | 
| 12 | 
            -
              (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
         | 
| 13 | 
            -
            * Send me a pull request. Bonus points for topic branches.
         | 
| 7 | 
            +
            Here are the steps to get Somatics up and running on your system.
         | 
| 14 8 |  | 
| 15 | 
            -
             | 
| 9 | 
            +
            Somatics3 Support Rails 3 Now!
         | 
| 16 10 |  | 
| 17 | 
            -
             | 
| 11 | 
            +
             | 
| 12 | 
            +
            === System Requirements
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            * Ruby v1.8.7 or v1.9.2
         | 
| 15 | 
            +
            * Ruby on Rails v3.0+ 
         | 
| 16 | 
            +
            * MySQL v4.1.1 or later (v5+ is recommended) or SQLite v3.4 or later
         | 
| 17 | 
            +
             | 
| 18 | 
            +
             | 
| 19 | 
            +
            == Getting Started
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            1. Install \Somatics at the command prompt if you haven't yet:
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                gem install somatics3-generators
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            2. At the command prompt, create a new \Somatics application:
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                somatics new myapp
         | 
| 28 | 
            +
             | 
| 29 | 
            +
               where "myapp" is the application name.
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            3. Change directory to +myapp+ and start the web server:
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                cd myapp; rails server
         | 
| 34 | 
            +
             | 
| 35 | 
            +
               Run with <tt>--help</tt> for options.
         | 
| 36 | 
            +
               
         | 
| 37 | 
            +
            4. Open up http://localhost:3000/admin  and login with username ‘admin’ and password ‘somatics’.
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            === Downloads
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            * Git source code repository: git://github.com/inspiresynergy/somatics3-generators.git
         | 
| 42 | 
            +
            * .zip or .tgz archives: http://github.com/inspiresynergy/somatics3-generators/downloads
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            === Resources
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            * Home page: http://www.somaticsapp.com
         | 
| 47 | 
            +
            * Project page: http://github.com/inspiresynergy/somatics3-generators/tree/master
         | 
| 48 | 
            +
            * Features and bugs: http://somatics.lighthouseapp.com
         | 
| 49 | 
            +
            * Twitter commit updates: http://twitter.com/somaticsapp
         | 
| 50 | 
            +
            * Discussion group for developers: http://groups.google.com/group/somaticsapp
         | 
| 51 | 
            +
            * IRC channel: #somaticsapp on irc.freenode.net
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            === Generate the Admin Model
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            You can test drive Somatics by generating models. 
         | 
| 56 | 
            +
             | 
| 57 | 
            +
               $ rails generate somatics:scaffold products title:string description:text
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            Among other things the generator creates admin user records and administration panels. 
         | 
| 60 | 
            +
            You can log in the admin panel using the default login and password.(+admin+/+password+)
         | 
| 61 | 
            +
            The admin site is at http://localhost:3000/admin .
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            === Deploying The App
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            TODO
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            === For Developers
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            TODO
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            === Features
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            Somatic is open source software and relies on your contributions to grow!
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            http://github.com/inspiresynergy/somatics3-generators
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            GitHub always contains the latest BaseApp code. Fork your own development branch here if you wish to contribute code.
         | 
| 78 | 
            +
             | 
| 79 | 
            +
            Pull requests should be send to ‘inspiresynergy’ to include them in the main Somatics code base.
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            http://inspiresynergy.lighthouseapp.com/projects/53315-somatics/overview
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            Bug reports and feature requests should be posted in LightHouse.
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            Bugs always have priority over new features! But, you’re free to help out with whatever you want.
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            === Credits
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            Somatics is developed by Inspire Synergy – Benjamin Wong, Gary Or and a whole bunch of cool contributors.
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            Somatics is released to the public under the MIT license.
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.0. | 
| 1 | 
            +
            0.0.8
         | 
    
        data/bin/somatics
    CHANGED
    
    
| @@ -97,21 +97,21 @@ module Somatics | |
| 97 97 | 
             
                    unless options[:skip_routes]
         | 
| 98 98 | 
             
                      route_config =  class_path.collect{|namespace| "namespace :#{namespace} do " }.join(" ")
         | 
| 99 99 | 
             
                      route_config << "\n"
         | 
| 100 | 
            -
                      route_config << %Q{match '#{file_name}_signup' => '#{controller_plural_name}#new'}
         | 
| 100 | 
            +
                      route_config << %Q{    match '#{file_name}_signup' => '#{controller_plural_name}#new'}
         | 
| 101 101 | 
             
                      route_config << "\n"
         | 
| 102 | 
            -
                      route_config << %Q{match '#{file_name}_register' => '#{controller_plural_name}#create'}
         | 
| 102 | 
            +
                      route_config << %Q{    match '#{file_name}_register' => '#{controller_plural_name}#create'}
         | 
| 103 103 | 
             
                      route_config << "\n"
         | 
| 104 | 
            -
                      route_config << %Q{match '#{file_name}_login' => '#{sessions_controller_controller_name}#new'}
         | 
| 104 | 
            +
                      route_config << %Q{    match '#{file_name}_login' => '#{sessions_controller_controller_name}#new'}
         | 
| 105 105 | 
             
                      route_config << "\n"
         | 
| 106 | 
            -
                      route_config << %Q{match '#{file_name}_logout' => '#{sessions_controller_controller_name}#destroy'}
         | 
| 106 | 
            +
                      route_config << %Q{    match '#{file_name}_logout' => '#{sessions_controller_controller_name}#destroy'}
         | 
| 107 107 | 
             
                      route_config << "\n"
         | 
| 108 | 
            -
                      route_config << "match '/activate/:activation_code' => '#{ controller_plural_name }#activate', :as => :activate, :activation_code => nil"
         | 
| 108 | 
            +
                      route_config << "    match '/activate/:activation_code' => '#{ controller_plural_name }#activate', :as => :activate, :activation_code => nil"
         | 
| 109 109 | 
             
                      route_config << "\n"
         | 
| 110 | 
            -
                      route_config << "resource #{ sessions_controller_singular_name.to_sym.inspect }, :only => [:new, :create, :destroy]"
         | 
| 110 | 
            +
                      route_config << "    resource #{ sessions_controller_singular_name.to_sym.inspect }, :only => [:new, :create, :destroy]"
         | 
| 111 111 | 
             
                      route_config << "\n"
         | 
| 112 | 
            -
                      route_config << "resources #{ controller_plural_name.to_sym.inspect }"
         | 
| 112 | 
            +
                      route_config << "    resources #{ controller_plural_name.to_sym.inspect }"
         | 
| 113 113 | 
             
                      route_config << "\n"
         | 
| 114 | 
            -
                      route_config << " | 
| 114 | 
            +
                      route_config << "  end" * class_path.size
         | 
| 115 115 | 
             
                      route route_config
         | 
| 116 116 | 
             
                    end
         | 
| 117 117 | 
             
                  end
         | 
| @@ -47,12 +47,25 @@ module Somatics | |
| 47 47 | 
             
                    directory "config/locales"
         | 
| 48 48 | 
             
                  end
         | 
| 49 49 |  | 
| 50 | 
            +
                  def default_admin
         | 
| 51 | 
            +
                    rakefile "somatics.rake" do 
         | 
| 52 | 
            +
                      <<-RUBY
         | 
| 53 | 
            +
            namespace :somatics do
         | 
| 54 | 
            +
              desc "Create Default Admin User"
         | 
| 55 | 
            +
              task :create_user => :environment do
         | 
| 56 | 
            +
                User.find_or_create_by_name(:name => 'Admin', :login => 'admin', :password => 'somatics', :password_confirmation => 'somatics', :email => 'admin@admin.com')
         | 
| 57 | 
            +
              end
         | 
| 58 | 
            +
            end
         | 
| 59 | 
            +
                      RUBY
         | 
| 60 | 
            +
                    end
         | 
| 61 | 
            +
                  end
         | 
| 62 | 
            +
                  
         | 
| 50 63 | 
             
                  def add_route
         | 
| 51 64 | 
             
                    route_config = ""
         | 
| 52 | 
            -
                    route_config << " | 
| 53 | 
            -
                    route_config << " | 
| 54 | 
            -
                    route_config << " | 
| 55 | 
            -
                    route_config << "\ | 
| 65 | 
            +
                    route_config << "  namespace :#{options[:namespace]} do \n" if options[:namespace].present?
         | 
| 66 | 
            +
                    route_config << "    root :to => 'home#index'\n"
         | 
| 67 | 
            +
                    route_config << "    match 'home' => 'home#index'\n"
         | 
| 68 | 
            +
                    route_config << "  end\n" if options[:namespace].present?
         | 
| 56 69 | 
             
                    route route_config
         | 
| 57 70 | 
             
                  end
         | 
| 58 71 |  | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            class <%=namespace_class%>::<%= controller_class_name %>Controller <  | 
| 1 | 
            +
            class <%=namespace_class%>::<%= controller_class_name %>Controller < <%=namespace_class%>::AdminController
         | 
| 2 2 |  | 
| 3 3 | 
             
              # Redmine Filters
         | 
| 4 4 | 
             
              # available_filters :id,  {:name => 'ID', :type => :integer, :order => 1}
         | 
| @@ -0,0 +1,82 @@ | |
| 1 | 
            +
            require 'generators/somatics'
         | 
| 2 | 
            +
            require 'rails/generators/rails/resource/resource_generator'
         | 
| 3 | 
            +
            require 'rails/generators/resource_helpers'
         | 
| 4 | 
            +
            require 'rails/generators/migration'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Somatics
         | 
| 7 | 
            +
              module Generators
         | 
| 8 | 
            +
                class SettingsGenerator < Rails::Generators::Base
         | 
| 9 | 
            +
                  include Rails::Generators::Migration
         | 
| 10 | 
            +
                  
         | 
| 11 | 
            +
                  def generate_model
         | 
| 12 | 
            +
                    invoke "somatics:scaffold", ["settings" , "name:string", "field_type:string", "value:text", "category:string", "description:text", "mce_editable:boolean"], {:scaffold_controller => "settings_controller"}
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                  
         | 
| 15 | 
            +
                  def add_name_index
         | 
| 16 | 
            +
                    inject_into_file Dir.glob("db/migrate/[0-9]*_*.rb").last, :before => "end\n\n  def self.down" do
         | 
| 17 | 
            +
                      "add_index :settings, :name, :unique => true\n"
         | 
| 18 | 
            +
                    end
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
                  
         | 
| 21 | 
            +
                  def inject_model_validators
         | 
| 22 | 
            +
                    inject_into_class 'app/models/setting.rb', 'Setting' do 
         | 
| 23 | 
            +
                      <<-RUBY
         | 
| 24 | 
            +
              GENERAL = 'General'
         | 
| 25 | 
            +
              CATEGORIES = [GENERAL]
         | 
| 26 | 
            +
              FIELD_TYPES = ['integer', 'string', 'float', 'text', 'boolean']
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              attr_protected :name, :field_type, :description, :category, :mce_editable
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              validates_presence_of :name
         | 
| 31 | 
            +
              validates_uniqueness_of :name
         | 
| 32 | 
            +
              validates_presence_of :field_type
         | 
| 33 | 
            +
              validates_inclusion_of :field_type, :in => FIELD_TYPES
         | 
| 34 | 
            +
              validates_presence_of :category
         | 
| 35 | 
            +
              validates_inclusion_of :category, :in => CATEGORIES
         | 
| 36 | 
            +
              validates_presence_of :value, :allow_blank => true
         | 
| 37 | 
            +
              validates_numericality_of :value, :if => Proc.new {|setting| ['integer', 'float'].include?(setting.field_type) }
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              def self.[](name)
         | 
| 40 | 
            +
                raise SettingNotFound unless setting = Setting.find_by_name(name)
         | 
| 41 | 
            +
                setting.parsed_value
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              def self.[]=(name, value)
         | 
| 45 | 
            +
                raise SettingNotFound unless setting = Setting.find_by_name(name)
         | 
| 46 | 
            +
                setting.update_attribute(:value, value)
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              def parsed_value
         | 
| 50 | 
            +
                case self.field_type
         | 
| 51 | 
            +
                when 'integer'
         | 
| 52 | 
            +
                  self.value.to_i
         | 
| 53 | 
            +
                when 'float'
         | 
| 54 | 
            +
                  self.value.to_f
         | 
| 55 | 
            +
                when 'boolean'
         | 
| 56 | 
            +
                  self.value == '1'
         | 
| 57 | 
            +
                else
         | 
| 58 | 
            +
                  self.value
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
              def input_field_type
         | 
| 63 | 
            +
                case self.field_type
         | 
| 64 | 
            +
                when 'integer', 'string', 'float'
         | 
| 65 | 
            +
                  'text_field'
         | 
| 66 | 
            +
                when 'text'
         | 
| 67 | 
            +
                  self.mce_editable ? 'tinymce' : 'text_area'
         | 
| 68 | 
            +
                when 'boolean'
         | 
| 69 | 
            +
                  'check_box'
         | 
| 70 | 
            +
                else
         | 
| 71 | 
            +
                  'text_field'
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
              end
         | 
| 74 | 
            +
             | 
| 75 | 
            +
              class SettingNotFound < Exception; end
         | 
| 76 | 
            +
                      RUBY
         | 
| 77 | 
            +
                    end rescue nil
         | 
| 78 | 
            +
                  
         | 
| 79 | 
            +
                  end
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
              end
         | 
| 82 | 
            +
            end
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            Description:
         | 
| 2 | 
            +
                Stubs out a scaffolded controller and its views. Pass the model name,
         | 
| 3 | 
            +
                either CamelCased or under_scored, and a list of views as arguments.
         | 
| 4 | 
            +
                The controller name is retrieved as a pluralized version of the model
         | 
| 5 | 
            +
                name.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                To create a controller within a module, specify the model name as a
         | 
| 8 | 
            +
                path like 'parent_module/controller_name'.
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                This generates a controller class in app/controllers and invokes helper,
         | 
| 11 | 
            +
                template engine and test framework generators.
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            Example:
         | 
| 14 | 
            +
                `rails generate scaffold_controller CreditCard`
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                Credit card controller with URLs like /credit_card/debit.
         | 
| 17 | 
            +
                    Controller:      app/controllers/credit_cards_controller.rb
         | 
| 18 | 
            +
                    Functional Test: test/functional/credit_cards_controller_test.rb
         | 
| 19 | 
            +
                    Views:           app/views/credit_cards/index.html.erb [...]
         | 
| 20 | 
            +
                    Helper:          app/helpers/credit_cards_helper.rb
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            require 'generators/somatics'
         | 
| 2 | 
            +
            require 'rails/generators/resource_helpers'
         | 
| 3 | 
            +
            require 'generators/somatics/scaffold_controller/scaffold_controller_generator'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Somatics
         | 
| 6 | 
            +
              module Generators
         | 
| 7 | 
            +
                class SettingsControllerGenerator <  ScaffoldControllerGenerator
         | 
| 8 | 
            +
                  extend TemplatePath
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
            end
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            pdf.header pdf.margin_box.top_left do 
         | 
| 2 | 
            +
              # pdf.image "#{RAILS_ROOT}/public/images/logo.png", :fit => [60,24]
         | 
| 3 | 
            +
              pdf.text "<%= plural_name.humanize %>", :size => 16, :align => :center   
         | 
| 4 | 
            +
            end
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            fields = params[:fields]# - [""]
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            entries = @<%= plural_name %>.collect do |<%= singular_name %>| 
         | 
| 9 | 
            +
              fields.collect do |f| 
         | 
| 10 | 
            +
                <%= singular_name %>.send(f)
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
            end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            x_pos = ((pdf.bounds.width / 2) - 150) 
         | 
| 15 | 
            +
            y_pos = ((pdf.bounds.height / 2) + 300) 
         | 
| 16 | 
            +
            pdf.bounding_box([x_pos, y_pos], :width => 300, :height => 450) do 
         | 
| 17 | 
            +
              pdf.table entries, :border_style => :grid,
         | 
| 18 | 
            +
                :row_colors => ["FFFFFF","DDDDDD"],
         | 
| 19 | 
            +
                :headers => @headers,
         | 
| 20 | 
            +
                :position => :center,
         | 
| 21 | 
            +
                :font_size => 9
         | 
| 22 | 
            +
            end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            pdf.number_pages "<page>/<total>", [pdf.bounds.right - 50, 0]
         | 
| 25 | 
            +
             | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            excel_document(xml) do
         | 
| 2 | 
            +
              xml.Worksheet 'ss:Name' => '<%= plural_name.humanize %>' do
         | 
| 3 | 
            +
                xml.Table do
         | 
| 4 | 
            +
                  # Header
         | 
| 5 | 
            +
                  xml.Row do
         | 
| 6 | 
            +
                    @headers.each do |header|
         | 
| 7 | 
            +
                      xml.Cell { xml.Data header, 'ss:Type' => 'String' }
         | 
| 8 | 
            +
                    end
         | 
| 9 | 
            +
                  end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  # Rows
         | 
| 12 | 
            +
                  unless @<%= plural_name %>.blank?
         | 
| 13 | 
            +
                    for <%= singular_name %> in @<%= plural_name %>
         | 
| 14 | 
            +
                      xml.Row do
         | 
| 15 | 
            +
                        @fields.each do |f|
         | 
| 16 | 
            +
                          xml.Cell { xml.Data <%= singular_name %>.send(f), 'ss:Type' => 'String' }
         | 
| 17 | 
            +
                        end
         | 
| 18 | 
            +
                      end
         | 
| 19 | 
            +
                    end
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -0,0 +1,80 @@ | |
| 1 | 
            +
            class <%=namespace_class%>::<%= controller_class_name %>Controller < <%=namespace_class%>::AdminController
         | 
| 2 | 
            +
              # Redmine Filters
         | 
| 3 | 
            +
              # available_filters :id,  {:name => 'ID', :type => :integer, :order => 1}
         | 
| 4 | 
            +
              <% attributes.each_with_index do |attribute, index| -%>
         | 
| 5 | 
            +
              # available_filters :<%= attribute.name %>,  {:name => '<%= attribute.name.humanize %>', :type => :<%= attribute.type %>, :order => <%= index %>}
         | 
| 6 | 
            +
              <% end -%>
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              default_filter :id
         | 
| 9 | 
            +
              <% attributes.each do |attribute| -%>
         | 
| 10 | 
            +
              # default_filter :<%= attribute.name %>
         | 
| 11 | 
            +
              <% end %>
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              # GET /<%= table_name %>
         | 
| 14 | 
            +
              # GET /<%= table_name %>.xml
         | 
| 15 | 
            +
              def index
         | 
| 16 | 
            +
                @fields = <%= attributes.collect {|attribute| attribute.name}.inspect %>
         | 
| 17 | 
            +
                @headers = <%= attributes.collect {|attribute| attribute.name.humanize}.inspect %>
         | 
| 18 | 
            +
                respond_to do |format|
         | 
| 19 | 
            +
                  format.html {
         | 
| 20 | 
            +
                    @<%= table_name %> = <%= class_name %>.paginate(:page => params[:<%= table_name %>_page], :conditions => query_statement, :order => (params[:<%= singular_name %>_sort].gsub('_reverse', ' DESC') unless params[:<%= singular_name %>_sort].blank?))
         | 
| 21 | 
            +
                  }
         | 
| 22 | 
            +
                  format.xml { 
         | 
| 23 | 
            +
                    @<%= table_name %> = <%= class_name %>.all(:conditions => query_statement)
         | 
| 24 | 
            +
                  }
         | 
| 25 | 
            +
                  format.csv {
         | 
| 26 | 
            +
                    @<%= table_name %> = <%= class_name %>.all(:conditions => query_statement)
         | 
| 27 | 
            +
                    csv_string = FasterCSV.generate do |csv|
         | 
| 28 | 
            +
                    	csv << @headers
         | 
| 29 | 
            +
                    	@<%= table_name %>.each do |<%= singular_name %>|
         | 
| 30 | 
            +
                    	  csv << @fields.collect { |f| <%= singular_name %>.send(f) }        	    
         | 
| 31 | 
            +
                  	  end
         | 
| 32 | 
            +
                  	end
         | 
| 33 | 
            +
                  	send_data csv_string, :type => 'text/csv; charset=iso-8859-1; header=present', 
         | 
| 34 | 
            +
              				:disposition => "attachment; filename=<%= table_name %>.csv"
         | 
| 35 | 
            +
                  }
         | 
| 36 | 
            +
                  format.xls {
         | 
| 37 | 
            +
                    @<%= table_name %> = <%= class_name %>.all(:conditions => query_statement)
         | 
| 38 | 
            +
                    render :xls => @<%= table_name %>
         | 
| 39 | 
            +
                  }
         | 
| 40 | 
            +
                  format.pdf {
         | 
| 41 | 
            +
                    params[:fields] = @fields
         | 
| 42 | 
            +
                    @<%= table_name %> = <%= class_name %>.all(:conditions => query_statement)
         | 
| 43 | 
            +
                    prawnto :prawn => {:text_options => { :wrap => :character }, :page_layout => :portrait }
         | 
| 44 | 
            +
                  }
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              # GET /<%= table_name %>/1
         | 
| 49 | 
            +
              # GET /<%= table_name %>/1.xml
         | 
| 50 | 
            +
              def show
         | 
| 51 | 
            +
                @<%= file_name %> = <%= class_name %>.find(params[:id])
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                respond_to do |format|
         | 
| 54 | 
            +
                  format.html # show.html.erb
         | 
| 55 | 
            +
                  format.xml  { render :xml => @<%= file_name %> }
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
              end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
              # GET /<%= table_name %>/1/edit
         | 
| 60 | 
            +
              def edit
         | 
| 61 | 
            +
                @<%= file_name %> = <%= class_name %>.find(params[:id])
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
              # PUT /<%= table_name %>/1
         | 
| 65 | 
            +
              # PUT /<%= table_name %>/1.xml
         | 
| 66 | 
            +
              def update
         | 
| 67 | 
            +
                @<%= file_name %> = <%= class_name %>.find(params[:id])
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                respond_to do |format|
         | 
| 70 | 
            +
                  if @<%= file_name %>.update_attributes(params[:<%= file_name %>])
         | 
| 71 | 
            +
                    flash[:notice] = '<%= class_name %> was successfully updated.'
         | 
| 72 | 
            +
                    format.html { redirect_to([:admin,@<%= file_name %>]) }
         | 
| 73 | 
            +
                    format.xml  { head :ok }
         | 
| 74 | 
            +
                  else
         | 
| 75 | 
            +
                    format.html { render :action => "edit" }
         | 
| 76 | 
            +
                    format.xml  { render :xml => @<%= file_name %>.errors, :status => :unprocessable_entity }
         | 
| 77 | 
            +
                  end
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
              end
         | 
| 80 | 
            +
            end
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            <%- 
         | 
| 2 | 
            +
            require 'net/http'
         | 
| 3 | 
            +
            require 'uri'
         | 
| 4 | 
            +
            require 'json'
         | 
| 5 | 
            +
            class GoogleTranslate
         | 
| 6 | 
            +
              def self.t(text)
         | 
| 7 | 
            +
                uri = URI.parse('http://ajax.googleapis.com/ajax/services/language/translate')
         | 
| 8 | 
            +
                JSON.parse(Net::HTTP.post_form(uri, {"q" => text, "langpair" => "en|zh-TW", "v" => '1.0'}).body)['responseData']['translatedText'] rescue text.humanize
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
            -%>
         | 
| 12 | 
            +
            "zh-TW":
         | 
| 13 | 
            +
              activerecord:
         | 
| 14 | 
            +
                models:
         | 
| 15 | 
            +
                  <%= singular_name %>: <%= GoogleTranslate.t singular_name.humanize %>
         | 
| 16 | 
            +
                attributes:
         | 
| 17 | 
            +
                  <%= singular_name %>:
         | 
| 18 | 
            +
            <% if options[:authenticated] -%>
         | 
| 19 | 
            +
                    login: 註冊
         | 
| 20 | 
            +
                    name: 名稱
         | 
| 21 | 
            +
                    email: 電子郵件
         | 
| 22 | 
            +
                    created_at: 註冊日期
         | 
| 23 | 
            +
                    password: 密碼
         | 
| 24 | 
            +
                    password_confirmation: 確認密碼
         | 
| 25 | 
            +
            <% end -%>
         | 
| 26 | 
            +
            <% attributes.each do |attribute| -%>
         | 
| 27 | 
            +
                    <%= attribute.name %>: <%= GoogleTranslate.t attribute.name.humanize %>
         | 
| 28 | 
            +
            <% end -%>
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            class <%= migration_name %> < ActiveRecord::Migration
         | 
| 2 | 
            +
              def self.up
         | 
| 3 | 
            +
                create_table "<%= table_name %>" do |t|
         | 
| 4 | 
            +
                  t.string :name
         | 
| 5 | 
            +
                  t.string :field_type
         | 
| 6 | 
            +
                  t.text :value
         | 
| 7 | 
            +
                  t.string :category
         | 
| 8 | 
            +
                  t.text :description
         | 
| 9 | 
            +
                  t.boolean :mce_editable
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
                add_index :<%= table_name %>, :name, :unique => true
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def self.down
         | 
| 15 | 
            +
                drop_table "<%= table_name %>"
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,54 @@ | |
| 1 | 
            +
            class <%= model_name %> < ActiveRecord::Base
         | 
| 2 | 
            +
              GENERAL = 'General'
         | 
| 3 | 
            +
              CATEGORIES = [GENERAL]
         | 
| 4 | 
            +
              FIELD_TYPES = ['integer', 'string', 'float', 'text', 'boolean']
         | 
| 5 | 
            +
              
         | 
| 6 | 
            +
              attr_protected :name, :field_type, :description, :category, :mce_editable
         | 
| 7 | 
            +
              
         | 
| 8 | 
            +
              validates_presence_of :name
         | 
| 9 | 
            +
              validates_uniqueness_of :name
         | 
| 10 | 
            +
              validates_presence_of :field_type
         | 
| 11 | 
            +
              validates_inclusion_of :field_type, :in => FIELD_TYPES
         | 
| 12 | 
            +
              validates_presence_of :category
         | 
| 13 | 
            +
              validates_inclusion_of :category, :in => CATEGORIES
         | 
| 14 | 
            +
              validates_presence_of :value, :allow_blank => true
         | 
| 15 | 
            +
              validates_numericality_of :value, :if => Proc.new {|setting| ['integer', 'float'].include?(setting.field_type) }
         | 
| 16 | 
            +
              
         | 
| 17 | 
            +
              def self.[](name)
         | 
| 18 | 
            +
                raise SettingNotFound unless <%= singular_name %> = <%= model_name %>.find_by_name(name)
         | 
| 19 | 
            +
                setting.parsed_value
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
              
         | 
| 22 | 
            +
              def self.[]=(name, value)
         | 
| 23 | 
            +
                raise SettingNotFound unless <%= singular_name %> = <%= model_name %>.find_by_name(name)
         | 
| 24 | 
            +
                <%= singular_name %>.update_attribute(:value, value)
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              def parsed_value
         | 
| 28 | 
            +
                case self.field_type
         | 
| 29 | 
            +
                when 'integer'
         | 
| 30 | 
            +
                  self.value.to_i
         | 
| 31 | 
            +
                when 'float'
         | 
| 32 | 
            +
                  self.value.to_f
         | 
| 33 | 
            +
                when 'boolean'
         | 
| 34 | 
            +
                  self.value == '1'
         | 
| 35 | 
            +
                else
         | 
| 36 | 
            +
                  self.value
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
              
         | 
| 40 | 
            +
              def input_field_type
         | 
| 41 | 
            +
                case self.field_type
         | 
| 42 | 
            +
                when 'integer', 'string', 'float'
         | 
| 43 | 
            +
                  'text_field'
         | 
| 44 | 
            +
                when 'text'
         | 
| 45 | 
            +
                  self.mce_editable ? 'tinymce' : 'text_area'
         | 
| 46 | 
            +
                when 'boolean'
         | 
| 47 | 
            +
                  'check_box'
         | 
| 48 | 
            +
                else
         | 
| 49 | 
            +
                  'text_field'
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
              class SettingNotFound < Exception; end
         | 
| 54 | 
            +
            end
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            <h3><%%= "#{t('Bulk')} #{t('Update')}" %></h3>
         | 
| 2 | 
            +
            <div class="issue"> 
         | 
| 3 | 
            +
              <table width="100%">
         | 
| 4 | 
            +
                <tbody>
         | 
| 5 | 
            +
                  <!-- <tr>
         | 
| 6 | 
            +
                    <td><b>Field</b></td>
         | 
| 7 | 
            +
                    <td><%%#= text_field_tag '<%= singular_name %>[field]' %></td>
         | 
| 8 | 
            +
                  </tr> -->
         | 
| 9 | 
            +
                </tbody>
         | 
| 10 | 
            +
              </table>
         | 
| 11 | 
            +
            </div>
         | 
| 12 | 
            +
            <%%= submit_tag("#{t('Bulk')} #{t('Update')}") %>
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            <table width="100%">
         | 
| 2 | 
            +
            <tbody>
         | 
| 3 | 
            +
            	<tr>
         | 
| 4 | 
            +
            		<td colspan="2"><br/><h3><%%= <%= class_name %>.human_name %></h3></td>
         | 
| 5 | 
            +
            	</tr>
         | 
| 6 | 
            +
            	<tr>
         | 
| 7 | 
            +
            	  <td><b><%%= <%= class_name %>.human_attribute_name(:name) %></b></td>
         | 
| 8 | 
            +
            	  <td><%%=h @<%= singular_name %>.name %></td>
         | 
| 9 | 
            +
            	</tr>	
         | 
| 10 | 
            +
            	<tr>
         | 
| 11 | 
            +
            	  <td><b><%%= <%= class_name %>.human_attribute_name(:value) %></b></td>
         | 
| 12 | 
            +
            	  <td><%%= f.send(@<%= singular_name %>.input_field_type, :value) %></td>
         | 
| 13 | 
            +
            	</tr>
         | 
| 14 | 
            +
            </tbody>
         | 
| 15 | 
            +
            </table>
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            <table class="list issues">
         | 
| 2 | 
            +
            	<thead>
         | 
| 3 | 
            +
            		<tr>
         | 
| 4 | 
            +
                  <th title="Sort by "#""><%%= sort_link_helper t('ID'), '<%=singular_name%>', 'id' %></th>
         | 
| 5 | 
            +
            <% %w(name value description).each do |attribute| -%>
         | 
| 6 | 
            +
                  <th title="Sort by "<%= attribute.humanize %>""><%%= sort_link_helper <%= class_name %>.human_attribute_name(:<%= attribute %>), '<%=singular_name%>', '<%= attribute %>' %></th>
         | 
| 7 | 
            +
            <% end -%>
         | 
| 8 | 
            +
                  <!-- More Sort Link Helper -->
         | 
| 9 | 
            +
            		</tr>
         | 
| 10 | 
            +
            	</thead>
         | 
| 11 | 
            +
            	<tbody>
         | 
| 12 | 
            +
            	<%% unless <%= plural_name %>.empty? %>
         | 
| 13 | 
            +
            		<%% for <%= singular_name %> in <%= plural_name %> %>		
         | 
| 14 | 
            +
            		<tr id="<%% dom_id(<%=singular_name%>)%>" class="hascontextmenu <%%= cycle 'odd' , 'even' %> issue">
         | 
| 15 | 
            +
                  <td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);"><%%= link_to <%= singular_name %>.id, [:admin, <%= singular_name %>]%></td>
         | 
| 16 | 
            +
            <% %w(name value description).each do |attribute| -%>
         | 
| 17 | 
            +
                  <td onclick="link_to(<%%= "'#{admin_<%=singular_name%>_path(<%=singular_name%>)}'" %>);" class="<%= attribute %>"><%%=h <%= singular_name %>.<%= attribute %> %></td>
         | 
| 18 | 
            +
            <% end -%>
         | 
| 19 | 
            +
                  <!-- More Fields -->
         | 
| 20 | 
            +
                </tr>		  
         | 
| 21 | 
            +
            		<%% end %>
         | 
| 22 | 
            +
            	<%% else -%>
         | 
| 23 | 
            +
            		<tr class="datos"> 
         | 
| 24 | 
            +
            		  <td colspan="100" align="center">No Data available</td> 
         | 
| 25 | 
            +
            		</tr> 
         | 
| 26 | 
            +
            	<%% end -%>	
         | 
| 27 | 
            +
              </tbody>
         | 
| 28 | 
            +
            </table>
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <li><%%= link_to 'Home', '/admin', :class => (match_controller?("home"))  ? 'selected' : ''%></li>
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            <table class="attributes" width="100%">
         | 
| 2 | 
            +
            <tbody> 
         | 
| 3 | 
            +
              <tr>
         | 
| 4 | 
            +
            		<td colspan="2"><br/><h3><%%= "#{<%= class_name %>.human_name} #{t('Information')}" %></h3></td>
         | 
| 5 | 
            +
            	</tr>
         | 
| 6 | 
            +
            <% for attribute in attributes -%>
         | 
| 7 | 
            +
            	<tr>
         | 
| 8 | 
            +
            	  <td><b><%%= <%= class_name %>.human_attribute_name(:<%= attribute.name %>) %></b></td>
         | 
| 9 | 
            +
            	  <td><%%=h <%= singular_name %>.<%= attribute.name %> %></td>
         | 
| 10 | 
            +
            	</tr>
         | 
| 11 | 
            +
            <% end -%>
         | 
| 12 | 
            +
            </tbody>
         | 
| 13 | 
            +
            </table>
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            <div class="contextual">
         | 
| 2 | 
            +
              <%%= link_to t('Update'), edit_admin_<%= singular_name %>_path(@<%= singular_name %>), :accesskey => "e", :class => "icon icon-edit", :onclick => "showAndScrollTo('update','focus'); return false;"%>
         | 
| 3 | 
            +
            </div>
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            <h2><%%= "#{<%= class_name %>.human_name} ##{@<%= singular_name %>.id}" %></h2>
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            <div class="issue details">
         | 
| 8 | 
            +
            	<%%= render :partial => 'show' , :locals => {:<%= singular_name %> => @<%= singular_name %>} %>
         | 
| 9 | 
            +
            </div>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            <!-- More List View -->
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            <div id="update">
         | 
| 14 | 
            +
              <h3><%%= t('Update') %></h3>
         | 
| 15 | 
            +
              <div id="focus"></div>
         | 
| 16 | 
            +
              <%%= render :partial => 'edit' , :locals => {:<%= singular_name %> => @<%= singular_name %>} %>
         | 
| 17 | 
            +
            </div>
         | 
| 18 | 
            +
            <div style="clear: both;"></div>
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
            <%% content_for :sidebar do %>
         | 
| 21 | 
            +
              <h3>Actions</h3>
         | 
| 22 | 
            +
              <%%= link_to "#{t('Back_to')} #{<%= class_name %>.human_name}", admin_<%= plural_name %>_path %>
         | 
| 23 | 
            +
            <%% end %>
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            <div class="contextual"></div>
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            <h2><%%= <%= class_name %>.model_name.human %></h2>
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            <!-- Redmine Filters-->
         | 
| 6 | 
            +
            <%%#= filters %>
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            <div class="autoscroll">
         | 
| 9 | 
            +
              <%%= render :partial => 'list', :locals => {:<%= plural_name %> => @<%= plural_name %>} %>
         | 
| 10 | 
            +
            </div>
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            <!-- TODO Export-->
         | 
| 13 | 
            +
            <p class="other-formats"><%%= t('Also_available_in') %>:
         | 
| 14 | 
            +
            	<span><%%= link_to 'CSV',  admin_<%= plural_name %>_path(:format => :csv),  :class => 'csv' %></span>
         | 
| 15 | 
            +
            	<span><%%= link_to 'XLS',  admin_<%= plural_name %>_path(:format => :xls),  :class => 'xls' %></span>	
         | 
| 16 | 
            +
            	<span><%%= link_to 'PDF',  admin_<%= plural_name %>_path(:format => :pdf),  :class => 'pdf' %></span>
         | 
| 17 | 
            +
            </p>
         | 
| 18 | 
            +
            <div style="clear:both;"></div>
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
            <%%# content_for :sidebar do %>
         | 
| 21 | 
            +
              <!-- <h3>Actions</h3> -->
         | 
| 22 | 
            +
            <%%# end %>
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            <h2><%%= "#{t('New')} #{<%= class_name %>.model_name.human}" %></h2>
         | 
| 2 | 
            +
            <%% form_for([:admin, @<%= singular_name %>]) do |f| %>
         | 
| 3 | 
            +
              <%%= f.error_messages %>
         | 
| 4 | 
            +
              <div class="issue">
         | 
| 5 | 
            +
              <%%= render :partial => 'form' , :locals => {:f => f} %>
         | 
| 6 | 
            +
              </div>
         | 
| 7 | 
            +
              <%%= f.submit t('Create') %>
         | 
| 8 | 
            +
            <%% end %>
         | 
| 9 | 
            +
            <%%= link_to t('Back'), admin_<%= plural_name %>_path %>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            <%% content_for :sidebar do %>
         | 
| 12 | 
            +
              <h3>Actions</h3>
         | 
| 13 | 
            +
              <%%= link_to "#{t('Back_to')} #{<%= class_name %>.model_name.human}", admin_<%= plural_name %>_path %>
         | 
| 14 | 
            +
            <%% end %>
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            <div class="contextual">
         | 
| 2 | 
            +
              <%%= link_to t('Update'), edit_admin_<%= singular_name %>_path(@<%= singular_name %>), :accesskey => "e", :class => "icon icon-edit", :onclick => "showAndScrollTo('update','focus'); return false;"%>
         | 
| 3 | 
            +
            </div>
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            <h2><%%= "#{<%= class_name %>.human_name} ##{@<%= singular_name %>.id}" %></h2>
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            <div class="issue details">
         | 
| 8 | 
            +
            	<%%= render :partial => 'show' , :locals => {:<%= singular_name %> => @<%= singular_name %>} %>
         | 
| 9 | 
            +
            </div>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            <!-- More List View -->
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            <div id="update" style="display:none;">
         | 
| 14 | 
            +
              <h3><%%= t('Update') %></h3>
         | 
| 15 | 
            +
              <div id="focus"></div>
         | 
| 16 | 
            +
              <%%= render :partial => 'edit' , :locals => {:<%= singular_name %> => @<%= singular_name %>} %>
         | 
| 17 | 
            +
            </div>
         | 
| 18 | 
            +
            <div style="clear: both;"></div>
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
            <%% content_for :sidebar do %>
         | 
| 21 | 
            +
              <h3>Actions</h3>
         | 
| 22 | 
            +
              <%%= link_to "#{t('Back_to')} #{<%= class_name %>.human_name}", admin_<%= plural_name %>_path %>
         | 
| 23 | 
            +
            <%% end %>
         | 
    
        data/lib/somatics3-generators.rb
    CHANGED
    
    
| @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{somatics3-generators}
         | 
| 8 | 
            -
              s.version = "0.0. | 
| 8 | 
            +
              s.version = "0.0.8"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Benjamin Wong"]
         | 
| 12 | 
            -
              s.date = %q{2010-09- | 
| 12 | 
            +
              s.date = %q{2010-09-17}
         | 
| 13 13 | 
             
              s.description = %q{Somatics 3 generators is used to generate a resource with skeleton admin panel}
         | 
| 14 14 | 
             
              s.email = %q{tkwong@inspiresynergy.com}
         | 
| 15 15 | 
             
              s.executables = ["somatics", "somatify"]
         | 
| @@ -197,6 +197,28 @@ Gem::Specification.new do |s| | |
| 197 197 | 
             
                 "lib/generators/somatics/scaffold_controller/templates/view_index.html.erb",
         | 
| 198 198 | 
             
                 "lib/generators/somatics/scaffold_controller/templates/view_new.html.erb",
         | 
| 199 199 | 
             
                 "lib/generators/somatics/scaffold_controller/templates/view_show.html.erb",
         | 
| 200 | 
            +
                 "lib/generators/somatics/settings/settings_generator.rb",
         | 
| 201 | 
            +
                 "lib/generators/somatics/settings_controller/USAGE",
         | 
| 202 | 
            +
                 "lib/generators/somatics/settings_controller/settings_controller_generator.rb",
         | 
| 203 | 
            +
                 "lib/generators/somatics/settings_controller/templates/builder_index.pdf.prawn",
         | 
| 204 | 
            +
                 "lib/generators/somatics/settings_controller/templates/builder_index.xls.builder",
         | 
| 205 | 
            +
                 "lib/generators/somatics/settings_controller/templates/builder_index.xml.builder",
         | 
| 206 | 
            +
                 "lib/generators/somatics/settings_controller/templates/controller.rb",
         | 
| 207 | 
            +
                 "lib/generators/somatics/settings_controller/templates/helper.rb",
         | 
| 208 | 
            +
                 "lib/generators/somatics/settings_controller/templates/locales_en.yml",
         | 
| 209 | 
            +
                 "lib/generators/somatics/settings_controller/templates/locales_zh-TW.yml",
         | 
| 210 | 
            +
                 "lib/generators/somatics/settings_controller/templates/migration.rb",
         | 
| 211 | 
            +
                 "lib/generators/somatics/settings_controller/templates/model.rb",
         | 
| 212 | 
            +
                 "lib/generators/somatics/settings_controller/templates/partial_bulk.html.erb",
         | 
| 213 | 
            +
                 "lib/generators/somatics/settings_controller/templates/partial_edit.html.erb",
         | 
| 214 | 
            +
                 "lib/generators/somatics/settings_controller/templates/partial_form.html.erb",
         | 
| 215 | 
            +
                 "lib/generators/somatics/settings_controller/templates/partial_list.html.erb",
         | 
| 216 | 
            +
                 "lib/generators/somatics/settings_controller/templates/partial_menu.html.erb",
         | 
| 217 | 
            +
                 "lib/generators/somatics/settings_controller/templates/partial_show.html.erb",
         | 
| 218 | 
            +
                 "lib/generators/somatics/settings_controller/templates/view_edit.html.erb",
         | 
| 219 | 
            +
                 "lib/generators/somatics/settings_controller/templates/view_index.html.erb",
         | 
| 220 | 
            +
                 "lib/generators/somatics/settings_controller/templates/view_new.html.erb",
         | 
| 221 | 
            +
                 "lib/generators/somatics/settings_controller/templates/view_show.html.erb",
         | 
| 200 222 | 
             
                 "lib/somatics3-generators.rb",
         | 
| 201 223 | 
             
                 "somatics3-generators.gemspec",
         | 
| 202 224 | 
             
                 "templates/somatics.rb",
         | 
| @@ -204,7 +226,7 @@ Gem::Specification.new do |s| | |
| 204 226 | 
             
                 "test/test_somatics3-generators.rb"
         | 
| 205 227 | 
             
              ]
         | 
| 206 228 | 
             
              s.homepage = %q{http://github.com/inspiresynergy/somatics3-generators}
         | 
| 207 | 
            -
              s.rdoc_options = ["--charset=UTF-8", "--exclude=lib/generators/somatics/attributes/templates/migration.rb", "--exclude=lib/generators/somatics/authenticated/templates/mailer.rb", "--exclude=lib/generators/somatics/authenticated/templates/migration.rb", "--exclude=lib/generators/somatics/authenticated/templates/model.rb", "--exclude=lib/generators/somatics/authenticated/templates/observer.rb", "--exclude=lib/generators/somatics/authenticated/templates/test", "--exclude=lib/generators/somatics/authenticated_controller/templates/_model_partial.html.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/activation.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/authenticated_system.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/authenticated_test_helper.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/config", "--exclude=lib/generators/somatics/authenticated_controller/templates/controller.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/helper.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/login.html.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/mailer.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/migration.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/model.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/observer.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/session_helper.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/sessions_controller.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/signup.html.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/signup_notification.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/test", "--exclude=lib/generators/somatics/install/templates/config", "--exclude=lib/generators/somatics/install/templates/controller_admin.rb", "--exclude=lib/generators/somatics/install/templates/controller_home.rb", "--exclude=lib/generators/somatics/install/templates/helper_admin.rb", "--exclude=lib/generators/somatics/install/templates/layout_admin.html.erb", "--exclude=lib/generators/somatics/install/templates/lib", "--exclude=lib/generators/somatics/install/templates/partial_menu.html.erb", "--exclude=lib/generators/somatics/install/templates/public", "--exclude=lib/generators/somatics/install/templates/view_index.html.erb", "--exclude=lib/generators/somatics/relationship/templates/migration.rb", "--exclude=lib/generators/somatics/scaffold/templates/_form.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/edit.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/index.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/new.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/show.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/builder_index.pdf.prawn", "--exclude=lib/generators/somatics/scaffold_controller/templates/builder_index.xls.builder", "--exclude=lib/generators/somatics/scaffold_controller/templates/builder_index.xml.builder", "--exclude=lib/generators/somatics/scaffold_controller/templates/controller.rb", "--exclude=lib/generators/somatics/scaffold_controller/templates/locales_en.yml", "--exclude=lib/generators/somatics/scaffold_controller/templates/locales_zh-TW.yml", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_bulk.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_edit.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_form.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_list.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_menu.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_show.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_edit.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_index.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_new.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_show.html.erb"]
         | 
| 229 | 
            +
              s.rdoc_options = ["--charset=UTF-8", "--exclude=lib/generators/somatics/attributes/templates/migration.rb", "--exclude=lib/generators/somatics/authenticated/templates/mailer.rb", "--exclude=lib/generators/somatics/authenticated/templates/migration.rb", "--exclude=lib/generators/somatics/authenticated/templates/model.rb", "--exclude=lib/generators/somatics/authenticated/templates/observer.rb", "--exclude=lib/generators/somatics/authenticated/templates/test", "--exclude=lib/generators/somatics/authenticated_controller/templates/_model_partial.html.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/activation.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/authenticated_system.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/authenticated_test_helper.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/config", "--exclude=lib/generators/somatics/authenticated_controller/templates/controller.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/helper.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/login.html.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/mailer.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/migration.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/model.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/observer.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/session_helper.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/sessions_controller.rb", "--exclude=lib/generators/somatics/authenticated_controller/templates/signup.html.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/signup_notification.erb", "--exclude=lib/generators/somatics/authenticated_controller/templates/test", "--exclude=lib/generators/somatics/install/templates/config", "--exclude=lib/generators/somatics/install/templates/controller_admin.rb", "--exclude=lib/generators/somatics/install/templates/controller_home.rb", "--exclude=lib/generators/somatics/install/templates/helper_admin.rb", "--exclude=lib/generators/somatics/install/templates/layout_admin.html.erb", "--exclude=lib/generators/somatics/install/templates/lib", "--exclude=lib/generators/somatics/install/templates/partial_menu.html.erb", "--exclude=lib/generators/somatics/install/templates/public", "--exclude=lib/generators/somatics/install/templates/view_index.html.erb", "--exclude=lib/generators/somatics/relationship/templates/migration.rb", "--exclude=lib/generators/somatics/scaffold/templates/_form.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/edit.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/index.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/new.html.erb", "--exclude=lib/generators/somatics/scaffold/templates/show.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/builder_index.pdf.prawn", "--exclude=lib/generators/somatics/scaffold_controller/templates/builder_index.xls.builder", "--exclude=lib/generators/somatics/scaffold_controller/templates/builder_index.xml.builder", "--exclude=lib/generators/somatics/scaffold_controller/templates/controller.rb", "--exclude=lib/generators/somatics/scaffold_controller/templates/locales_en.yml", "--exclude=lib/generators/somatics/scaffold_controller/templates/locales_zh-TW.yml", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_bulk.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_edit.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_form.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_list.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_menu.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/partial_show.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_edit.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_index.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_new.html.erb", "--exclude=lib/generators/somatics/scaffold_controller/templates/view_show.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/builder_index.pdf.prawn", "--exclude=lib/generators/somatics/settings_controller/templates/builder_index.xls.builder", "--exclude=lib/generators/somatics/settings_controller/templates/builder_index.xml.builder", "--exclude=lib/generators/somatics/settings_controller/templates/controller.rb", "--exclude=lib/generators/somatics/settings_controller/templates/helper.rb", "--exclude=lib/generators/somatics/settings_controller/templates/locales_en.yml", "--exclude=lib/generators/somatics/settings_controller/templates/locales_zh-TW.yml", "--exclude=lib/generators/somatics/settings_controller/templates/migration.rb", "--exclude=lib/generators/somatics/settings_controller/templates/model.rb", "--exclude=lib/generators/somatics/settings_controller/templates/partial_bulk.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/partial_edit.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/partial_form.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/partial_list.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/partial_menu.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/partial_show.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/view_edit.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/view_index.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/view_new.html.erb", "--exclude=lib/generators/somatics/settings_controller/templates/view_show.html.erb"]
         | 
| 208 230 | 
             
              s.require_paths = ["lib"]
         | 
| 209 231 | 
             
              s.rubyforge_project = %q{somatics3}
         | 
| 210 232 | 
             
              s.rubygems_version = %q{1.3.7}
         | 
    
        data/templates/somatics.rb
    CHANGED
    
    | @@ -90,24 +90,19 @@ rakefile "setup_svn.rake" do | |
| 90 90 | 
             
            end
         | 
| 91 91 |  | 
| 92 92 | 
             
            generate "somatics:install"
         | 
| 93 | 
            +
            # generate "tinymce_installation"
         | 
| 94 | 
            +
             | 
| 93 95 | 
             
            environment 'config.autoload_paths += %W(#{config.root}/lib)'
         | 
| 94 96 | 
             
            generate "somatics:authenticated user"
         | 
| 95 97 | 
             
            generate "somatics:authenticated_controller admin/user --model=User"
         | 
| 96 98 |  | 
| 99 | 
            +
            generate "somatics:settings"
         | 
| 100 | 
            +
             | 
| 97 101 | 
             
            rake "db:create"
         | 
| 98 102 | 
             
            rake "db:migrate"
         | 
| 99 103 |  | 
| 100 | 
            -
             | 
| 101 | 
            -
             | 
| 104 | 
            +
            rake "somatics:create_user" if yes?(%(Create Default Admin User (username:admin, password:somatics)?))
         | 
| 102 105 |  | 
| 103 | 
            -
            # 
         | 
| 104 | 
            -
            # generate "tinymce_installation"
         | 
| 105 | 
            -
            # generate "admin_controllers"
         | 
| 106 | 
            -
            # generate "admin_scaffold user --admin-authenticated"
         | 
| 107 | 
            -
            # generate "admin_setting"
         | 
| 108 | 
            -
            # 
         | 
| 109 | 
            -
            # rake "db:create"
         | 
| 110 | 
            -
            # rake "db:migrate"
         | 
| 111 106 |  | 
| 112 107 | 
             
            # unless app_name.blank?
         | 
| 113 108 | 
             
            #   run "git init"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: somatics3-generators
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 15
         | 
| 5 5 | 
             
              prerelease: false
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 0
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.0. | 
| 9 | 
            +
              - 8
         | 
| 10 | 
            +
              version: 0.0.8
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Benjamin Wong
         | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2010-09- | 
| 18 | 
            +
            date: 2010-09-17 00:00:00 +08:00
         | 
| 19 19 | 
             
            default_executable: 
         | 
| 20 20 | 
             
            dependencies: 
         | 
| 21 21 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -254,6 +254,28 @@ files: | |
| 254 254 | 
             
            - lib/generators/somatics/scaffold_controller/templates/view_index.html.erb
         | 
| 255 255 | 
             
            - lib/generators/somatics/scaffold_controller/templates/view_new.html.erb
         | 
| 256 256 | 
             
            - lib/generators/somatics/scaffold_controller/templates/view_show.html.erb
         | 
| 257 | 
            +
            - lib/generators/somatics/settings/settings_generator.rb
         | 
| 258 | 
            +
            - lib/generators/somatics/settings_controller/USAGE
         | 
| 259 | 
            +
            - lib/generators/somatics/settings_controller/settings_controller_generator.rb
         | 
| 260 | 
            +
            - lib/generators/somatics/settings_controller/templates/builder_index.pdf.prawn
         | 
| 261 | 
            +
            - lib/generators/somatics/settings_controller/templates/builder_index.xls.builder
         | 
| 262 | 
            +
            - lib/generators/somatics/settings_controller/templates/builder_index.xml.builder
         | 
| 263 | 
            +
            - lib/generators/somatics/settings_controller/templates/controller.rb
         | 
| 264 | 
            +
            - lib/generators/somatics/settings_controller/templates/helper.rb
         | 
| 265 | 
            +
            - lib/generators/somatics/settings_controller/templates/locales_en.yml
         | 
| 266 | 
            +
            - lib/generators/somatics/settings_controller/templates/locales_zh-TW.yml
         | 
| 267 | 
            +
            - lib/generators/somatics/settings_controller/templates/migration.rb
         | 
| 268 | 
            +
            - lib/generators/somatics/settings_controller/templates/model.rb
         | 
| 269 | 
            +
            - lib/generators/somatics/settings_controller/templates/partial_bulk.html.erb
         | 
| 270 | 
            +
            - lib/generators/somatics/settings_controller/templates/partial_edit.html.erb
         | 
| 271 | 
            +
            - lib/generators/somatics/settings_controller/templates/partial_form.html.erb
         | 
| 272 | 
            +
            - lib/generators/somatics/settings_controller/templates/partial_list.html.erb
         | 
| 273 | 
            +
            - lib/generators/somatics/settings_controller/templates/partial_menu.html.erb
         | 
| 274 | 
            +
            - lib/generators/somatics/settings_controller/templates/partial_show.html.erb
         | 
| 275 | 
            +
            - lib/generators/somatics/settings_controller/templates/view_edit.html.erb
         | 
| 276 | 
            +
            - lib/generators/somatics/settings_controller/templates/view_index.html.erb
         | 
| 277 | 
            +
            - lib/generators/somatics/settings_controller/templates/view_new.html.erb
         | 
| 278 | 
            +
            - lib/generators/somatics/settings_controller/templates/view_show.html.erb
         | 
| 257 279 | 
             
            - lib/somatics3-generators.rb
         | 
| 258 280 | 
             
            - somatics3-generators.gemspec
         | 
| 259 281 | 
             
            - templates/somatics.rb
         | 
| @@ -320,6 +342,25 @@ rdoc_options: | |
| 320 342 | 
             
            - --exclude=lib/generators/somatics/scaffold_controller/templates/view_index.html.erb
         | 
| 321 343 | 
             
            - --exclude=lib/generators/somatics/scaffold_controller/templates/view_new.html.erb
         | 
| 322 344 | 
             
            - --exclude=lib/generators/somatics/scaffold_controller/templates/view_show.html.erb
         | 
| 345 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/builder_index.pdf.prawn
         | 
| 346 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/builder_index.xls.builder
         | 
| 347 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/builder_index.xml.builder
         | 
| 348 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/controller.rb
         | 
| 349 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/helper.rb
         | 
| 350 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/locales_en.yml
         | 
| 351 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/locales_zh-TW.yml
         | 
| 352 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/migration.rb
         | 
| 353 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/model.rb
         | 
| 354 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/partial_bulk.html.erb
         | 
| 355 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/partial_edit.html.erb
         | 
| 356 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/partial_form.html.erb
         | 
| 357 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/partial_list.html.erb
         | 
| 358 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/partial_menu.html.erb
         | 
| 359 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/partial_show.html.erb
         | 
| 360 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/view_edit.html.erb
         | 
| 361 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/view_index.html.erb
         | 
| 362 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/view_new.html.erb
         | 
| 363 | 
            +
            - --exclude=lib/generators/somatics/settings_controller/templates/view_show.html.erb
         | 
| 323 364 | 
             
            require_paths: 
         | 
| 324 365 | 
             
            - lib
         | 
| 325 366 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         |