make your gem - generate config files


**how to make a gem**
=======================

1.生成配置文件

执行rails g hola_cc:install,在配置文件config下生成 hola_cc.yml文件

注意目录结构:
在创建:lib/generators/hola_cc

执行hola_cc:install 的时候,rails会去generators中找hola_cc这个文件夹
然后,再去找install_generator.rb中,查找HolaCc这个module, 这几个条件
同时满足的时候,才能正确找到 generator hola_cc



require "rails"
module HolaCc
  class InstallGenerator < Rails::Generators::Base
    source_root File.expand_path('../templates', __FILE__)

    def copy_files
      copy_file "hola_cc.yml", "config/hola_cc.yml"
    end
  end
end


正确执行rails g hola_cc:install 以后,会自动调用InstallGenerator的实例方法
如下面的 copy_files 和 xx,而不会执行私有方法 aa


require "rails"
module HolaCc
  class InstallGenerator < Rails::Generators::Base
    source_root File.expand_path('../templates', __FILE__)

    def copy_files
      copy_file "hola_cc.yml", "config/hola_cc.yml"
    end

    def xx
        puts "xxx"
    end

    private
    def aa
        puts "aa"
    end
  end
end

---------------------------------------------------------------------------
      输出结果:
      create  config/hola_cc.yml
      xxx

创建gem包的命令:gem build hola_cc.gemspec
注意s.files 会把你设定的文件添加到gem包中,根据个人需要添加即可

hola_cc.gemspec的内容如下:

Gem::Specification.new do |s|
  s.name = 'hola_cc'
  s.version = '0.0.0'
  s.date = '2013-10-09'
  s.summary = 'Hola_cc!'
  s.description = 'A simple hello world gem'
  s.authors = ["Michael Roshen"]
  s.files = ["lib/hola_cc.rb"]
  s.files += Dir['lib/**/*.rb']
  s.files += Dir['lib/**/*.yml']
  s.email = "[email protected]"
  s.homepage = "http://rubygems.org/gems/hola_cc"
  s.license = "MIT"

end

文件组织结构如下:

├── hola_cc.gemspec
└── lib
    ├── generators
    │   └── hola_cc
    │       ├── install_generator.rb
    │       └── templates
    │           └── hola_cc.yml
    └── hola_cc.rb

你可能感兴趣的:(config,gem,generate)