lib/padrino-gen/generators/components/orms/mongoid.rb in padrino-gen-0.12.8.1 vs lib/padrino-gen/generators/components/orms/mongoid.rb in padrino-gen-0.12.9

- old
+ new

@@ -1,33 +1,6 @@ MONGOID = (<<-MONGO) unless defined?(MONGOID) -# Connection.new takes host and port -host = 'localhost' -port = Mongo::Connection::DEFAULT_PORT - -database_name = case Padrino.env - when :development then '!NAME!_development' - when :production then '!NAME!_production' - when :test then '!NAME!_test' -end - -Mongoid.database = Mongo::Connection.new(host, port).db(database_name) - -# You can also configure Mongoid this way: -# Mongoid.configure do |config| -# name = @settings["database"] -# host = @settings["host"] -# config.master = Mongo::Connection.new.db(name) -# config.slaves = [ -# Mongo::Connection.new(host, @settings["slave_one"]["port"], :slave_ok => true).db(name), -# Mongo::Connection.new(host, @settings["slave_two"]["port"], :slave_ok => true).db(name) -# ] -# end -# -# More installation and setup notes are on http://mongoid.org/. -MONGO - -MONGOID3 = (<<-MONGO) unless defined?(MONGOID3) # Connection.new takes host and port. host = 'localhost' port = 27017 @@ -36,47 +9,55 @@ when :production then '!NAME!_production' when :test then '!NAME!_test' end # Use MONGO_URI if it's set as an environmental variable. -Mongoid::Config.sessions = - if ENV['MONGO_URI'] - {default: {uri: ENV['MONGO_URI'] }} - else - {default: {hosts: ["#\{host\}:#\{port\}"], database: database_name}} - end +database_settings = if ENV['MONGO_URI'] + {default: {uri: ENV['MONGO_URI'] }} +else + {default: {hosts: ["#\{host\}:#\{port\}"], database: database_name}} +end +case Mongoid::VERSION +when /^(3|4)/ + Mongoid::Config.sessions = database_settings +else + Mongoid::Config.load_configuration :clients => database_settings +end + # If you want to use a YML file for config, use this instead: # # Mongoid.load!(File.join(Padrino.root, 'config', 'database.yml'), Padrino.env) # # And add a config/database.yml file like this: # development: -# sessions: +# clients: #Replace clients with sessions to work with Mongoid version 3.x or 4.x # default: # database: !NAME!_development # hosts: # - localhost:27017 +# # production: -# sessions: +# clients: #Replace clients with sessions to work with Mongoid version 3.x or 4.x # default: # database: !NAME!_production # hosts: # - localhost:27017 +# # test: -# sessions: +# clients: #Replace clients with sessions to work with Mongoid version 3.x or 4.x # default: # database: !NAME!_test # hosts: # - localhost:27017 # # -# More installation and setup notes are on http://mongoid.org/en/mongoid/docs/installation.html#configuration +# More installation and setup notes are on https://docs.mongodb.org/ecosystem/tutorial/mongoid-installation/ MONGO def setup_orm - require_dependencies 'mongoid', :version => '~>3.0.0' - create_file('config/database.rb', MONGOID3.gsub(/!NAME!/, @project_name.underscore)) + require_dependencies 'mongoid', :version => '>= 3.0.0' + create_file('config/database.rb', MONGOID.gsub(/!NAME!/, @project_name.underscore)) end MONGOID_MODEL = (<<-MODEL) unless defined?(MONGOID_MODEL) class !NAME! include Mongoid::Document