Rails how to create an initializer inside a gem

I am trying to build a stone in Rails 3 and inside it I am trying to pass an initializer:

Credentials.configure do |config| file = File.read("#{Rails.root}/config/twitter.yaml") file_config = YAML.load(file) config.consumer_key = file_config[Rails.env][:consumer_key] config.consumer_secret = file_config[Rails.env][:consumer_secret] config.callback_url = URI.escape(file_config[Rails.env][:callback_url]) config.time_stamp = Time.now.to_i end 

and then I try to call it like this:

 Credentials.time_stamp 

but I get this error:

 uninitialized constant Twitter::Credentials 

what is the problem?

thanks

+4
source share
1 answer

First you need to define a generator in lib / generators / your_gem_name_generator.rb

 mkdir -p lib/generators/ 

Copy your initializer in this folder with a name like twitter_credentials.rb

Then create another file in this folder with a name like twitter_generator.rb with content like this:

 class YourGemNameRailtie < Rails::Generators::Base source_root(File.expand_path(File.dirname(__FILE__)) def copy_initializer copy_file 'twitter_credentials.rb', 'config/initializers/twitter_credentials.rb' end end 

You should check the official documentation for creating the generator here: http://guides.rubyonrails.org/generators.html

+6
source

All Articles