mince 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mince (1.0.0)
4
+ mince (1.1.0)
5
5
  activesupport (~> 3.0)
6
6
  bson_ext (~> 1.5.2)
7
7
  mongo (~> 1.5.2)
@@ -9,14 +9,14 @@ PATH
9
9
  GEM
10
10
  remote: http://rubygems.org/
11
11
  specs:
12
- activesupport (3.2.7)
12
+ activesupport (3.2.8)
13
13
  i18n (~> 0.6)
14
14
  multi_json (~> 1.0)
15
15
  bson (1.5.2)
16
16
  bson_ext (1.5.2)
17
17
  bson (= 1.5.2)
18
18
  diff-lcs (1.1.3)
19
- i18n (0.6.0)
19
+ i18n (0.6.1)
20
20
  mongo (1.5.2)
21
21
  bson (= 1.5.2)
22
22
  multi_json (1.3.6)
data/README.md CHANGED
@@ -18,6 +18,12 @@ Start MongoDB at localhost (currently does not support authentication against Mo
18
18
  From there you can use Mince to add and retrieve data.
19
19
 
20
20
  <pre>
21
+ # Has default db name
22
+ Mince::Config.database_name # => 'mince'
23
+
24
+ # Set the database name
25
+ Mince::Config.database_name = 'my_custom_db_name'
26
+
21
27
  # Add a book to the books collection
22
28
  Mince::DataStore.add 'books', title: 'The World In Photographs', publisher: 'National Geographic'
23
29
 
@@ -0,0 +1,24 @@
1
+ require 'active_support/core_ext/object/blank'
2
+ require 'singleton'
3
+
4
+ class Mince::Config
5
+ include Singleton
6
+
7
+ attr_reader :database_name
8
+
9
+ def initialize
10
+ self.database_name = "mince"
11
+ end
12
+
13
+ def database_name=(val)
14
+ @database_name = [val, ENV['TEST_ENV_NUMBER']].compact.join("-")
15
+ end
16
+
17
+ def self.database_name
18
+ instance.database_name
19
+ end
20
+
21
+ def self.database_name=(val)
22
+ instance.database_name = val
23
+ end
24
+ end
@@ -1,6 +1,6 @@
1
1
  require 'mongo'
2
2
  require 'singleton'
3
- require 'active_support/core_ext/object/blank'
3
+ require_relative 'config'
4
4
 
5
5
  module Mince
6
6
  class Connection
@@ -10,17 +10,7 @@ module Mince
10
10
 
11
11
  def initialize
12
12
  @connection = Mongo::Connection.new
13
- @db = connection.db(database)
14
- end
15
-
16
- # todo: push this into a config class which uses yaml or something like that to pull in the different environment settings?
17
- def database
18
- env_suffix = if (ENV['TEST_ENV_NUMBER'].blank?)
19
- ""
20
- else
21
- "-#{ENV['TEST_ENV_NUMBER']}"
22
- end
23
- "mince#{env_suffix}"
13
+ @db = connection.db(Mince::Config.database_name)
24
14
  end
25
15
  end
26
- end
16
+ end
data/lib/mince/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mince
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
@@ -0,0 +1,32 @@
1
+ require_relative '../../lib/mince/config'
2
+
3
+ describe Mince::Config do
4
+ it 'has a default database name' do
5
+ described_class.database_name.should == 'mince'
6
+ end
7
+
8
+ context 'when running multi threaded tests' do
9
+ before do
10
+ ENV['TEST_ENV_NUMBER'] = '3'
11
+ described_class.database_name = 'test'
12
+ end
13
+
14
+ after do
15
+ ENV['TEST_ENV_NUMBER'] = nil
16
+ end
17
+
18
+ it 'appends the test number to the database name' do
19
+ described_class.database_name.should == 'test-3'
20
+ end
21
+ end
22
+
23
+ context 'when specifying a custom database name' do
24
+ before do
25
+ described_class.database_name = 'custom'
26
+ end
27
+
28
+ it 'uses the custom database name' do
29
+ described_class.database_name.should == 'custom'
30
+ end
31
+ end
32
+ end
@@ -5,11 +5,16 @@ describe Mince::Connection do
5
5
 
6
6
  let(:mongo_connection) { mock 'a mongo connection object', :db => db }
7
7
  let(:db) { mock 'db'}
8
+ let(:config_database_name) { mock }
9
+
10
+ before do
11
+ Mince::Config.stub(database_name: config_database_name)
12
+ end
8
13
 
9
14
  it 'is a mongo connection' do
10
15
  Mongo::Connection.should_receive(:new).and_return(mongo_connection)
11
- mongo_connection.should_receive(:db).with("mince").and_return(db)
16
+ mongo_connection.should_receive(:db).with(config_database_name).and_return(db)
12
17
 
13
18
  subject.connection.should == mongo_connection
14
19
  end
15
- end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mince
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-08-08 00:00:00.000000000 Z
14
+ date: 2012-09-17 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -110,10 +110,12 @@ files:
110
110
  - README.md
111
111
  - Rakefile
112
112
  - lib/mince.rb
113
+ - lib/mince/config.rb
113
114
  - lib/mince/connection.rb
114
115
  - lib/mince/data_store.rb
115
116
  - lib/mince/version.rb
116
117
  - mince.gemspec
118
+ - spec/lib/config_spec.rb
117
119
  - spec/lib/connection_spec.rb
118
120
  - spec/lib/data_store_spec.rb
119
121
  homepage: https://github.com/asynchrony/mince
@@ -136,11 +138,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
138
  version: '0'
137
139
  requirements: []
138
140
  rubyforge_project: mince
139
- rubygems_version: 1.8.24
141
+ rubygems_version: 1.8.21
140
142
  signing_key:
141
143
  specification_version: 3
142
144
  summary: Lightweight MongoDB ORM for Ruby.
143
145
  test_files:
146
+ - spec/lib/config_spec.rb
144
147
  - spec/lib/connection_spec.rb
145
148
  - spec/lib/data_store_spec.rb
146
- has_rdoc: