mongify 0.0.9 → 0.1.0
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/CHANGELOG.rdoc +8 -0
- data/Gemfile.lock +1 -1
- data/README.rdoc +40 -16
- data/features/options.feature +3 -7
- data/features/print.feature +1 -1
- data/features/process.feature +0 -1
- data/features/support/env.rb +4 -1
- data/lib/mongify.rb +3 -1
- data/lib/mongify/cli.rb +0 -1
- data/lib/mongify/cli/application.rb +10 -1
- data/lib/mongify/cli/help_command.rb +1 -0
- data/lib/mongify/cli/options.rb +13 -14
- data/lib/mongify/cli/version_command.rb +1 -0
- data/lib/mongify/cli/worker_command.rb +15 -7
- data/lib/mongify/configuration.rb +14 -12
- data/lib/mongify/database.rb +2 -1
- data/lib/mongify/database/base_connection.rb +25 -15
- data/lib/mongify/database/column.rb +99 -21
- data/lib/mongify/database/data_row.rb +67 -0
- data/lib/mongify/database/no_sql_connection.rb +48 -10
- data/lib/mongify/database/sql_connection.rb +34 -4
- data/lib/mongify/database/table.rb +69 -7
- data/lib/mongify/exceptions.rb +7 -0
- data/lib/mongify/translation.rb +45 -2
- data/lib/mongify/translation/printer.rb +4 -3
- data/lib/mongify/translation/process.rb +11 -4
- data/lib/mongify/ui.rb +10 -1
- data/lib/mongify/version.rb +2 -1
- data/spec/mongify/cli/worker_command_spec.rb +3 -4
- data/spec/mongify/configuration_spec.rb +6 -12
- data/spec/mongify/database/base_connection_spec.rb +7 -3
- data/spec/mongify/database/column_spec.rb +171 -28
- data/spec/mongify/database/data_row_spec.rb +102 -0
- data/spec/mongify/database/no_sql_connection_spec.rb +4 -6
- data/spec/mongify/database/table_spec.rb +23 -2
- data/spec/mongify/translation/printer_spec.rb +3 -3
- data/spec/support/config_reader.rb +3 -1
- data/spec/support/generate_database.rb +7 -0
- metadata +7 -5
- data/lib/mongify/cli/report.rb +0 -11
@@ -116,7 +116,7 @@ describe Mongify::Database::Table do
|
|
116
116
|
|
117
117
|
context "reference_colums" do
|
118
118
|
before(:each) do
|
119
|
-
@col1 = Mongify::Database::Column.new('user_id', :integer, :
|
119
|
+
@col1 = Mongify::Database::Column.new('user_id', :integer, :references => 'users')
|
120
120
|
@col2 = Mongify::Database::Column.new('post_id', :integer, :references => 'posts')
|
121
121
|
@columns = [@col1,
|
122
122
|
Mongify::Database::Column.new('body'),
|
@@ -124,7 +124,7 @@ describe Mongify::Database::Table do
|
|
124
124
|
@table = Mongify::Database::Table.new('comments', :columns => @columns)
|
125
125
|
end
|
126
126
|
it "should return an array of columns" do
|
127
|
-
@table.reference_columns.should
|
127
|
+
@table.reference_columns.should =~ [@col1, @col2]
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
@@ -181,6 +181,27 @@ describe Mongify::Database::Table do
|
|
181
181
|
end
|
182
182
|
end
|
183
183
|
|
184
|
+
context "before_save" do
|
185
|
+
before(:each) do
|
186
|
+
@table = Mongify::Database::Table.new('users')
|
187
|
+
@table.before_save do |row|
|
188
|
+
puts "my keys are: #{row.keys}"
|
189
|
+
row.admin = row.delete('permission').to_i > 50
|
190
|
+
end
|
191
|
+
end
|
192
|
+
context "run_before_save" do
|
193
|
+
it "should create a new DataRow" do
|
194
|
+
row = {'first_name' => 'Bob'}
|
195
|
+
dr = Mongify::Database::DataRow.new(row)
|
196
|
+
Mongify::Database::DataRow.should_receive(:new).and_return(dr)
|
197
|
+
@table.send(:run_before_save, row)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
it "should work" do
|
201
|
+
@table.translate({'permission' => 51}).should == {'admin' => true}
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
184
205
|
context "translate" do
|
185
206
|
before(:each) do
|
186
207
|
@column1 = mock(:translate => {'first_name' => 'Timmy'}, :name => 'first_name')
|
@@ -4,13 +4,13 @@ describe Mongify::Translation do
|
|
4
4
|
context "print" do
|
5
5
|
before(:each) do
|
6
6
|
cols = [Mongify::Database::Column.new('first_name', :string),
|
7
|
-
Mongify::Database::Column.new('age', :integer
|
7
|
+
Mongify::Database::Column.new('age', :integer),
|
8
8
|
Mongify::Database::Column.new('bio', :text)]
|
9
9
|
@table = Mongify::Database::Table.new("users", :columns => cols)
|
10
10
|
@translation = Mongify::Translation.new()
|
11
11
|
@translation.add_table(@table)
|
12
12
|
@table2 = Mongify::Database::Table.new('posts')
|
13
|
-
@table2.column('id', :
|
13
|
+
@table2.column('id', :key)
|
14
14
|
@translation.add_table(@table2)
|
15
15
|
end
|
16
16
|
|
@@ -20,7 +20,7 @@ describe Mongify::Translation do
|
|
20
20
|
subject.print.should == <<-EOF
|
21
21
|
table "users" do
|
22
22
|
\tcolumn "first_name", :string
|
23
|
-
\tcolumn "age", :integer
|
23
|
+
\tcolumn "age", :integer
|
24
24
|
\tcolumn "bio", :text
|
25
25
|
end
|
26
26
|
|
@@ -1,18 +1,20 @@
|
|
1
|
+
# Used during testing to read in a config file
|
1
2
|
class ConfigReader
|
2
3
|
def initialize(filepath)
|
3
4
|
if File.exists?(filepath)
|
4
5
|
config = YAML.load_file(filepath)
|
5
|
-
#puts ">>> READING #{filepath}"
|
6
6
|
config.each { |key, value| instance_variable_set("@#{key}", value) }
|
7
7
|
else
|
8
8
|
raise ">>> Can't find #{filepath} -- unable to read config file <<<"
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
# Return true if there is an instance variable under that name
|
12
13
|
def responses_to?(key)
|
13
14
|
instance_variable_get("@#{key}") ? instance_variable_get("@#{key}") : super(key)
|
14
15
|
end
|
15
16
|
|
17
|
+
# Returns value of instance variable if set
|
16
18
|
def method_missing(meth, *args, &blk)
|
17
19
|
value = instance_variable_get("@#{meth}")
|
18
20
|
return value if value
|
@@ -1,4 +1,6 @@
|
|
1
|
+
# Used during testing to generate and load database information and connection strings
|
1
2
|
class GenerateDatabase
|
3
|
+
# Returns a mysql connection (using the database.yml)
|
2
4
|
def self.mysql_connection
|
3
5
|
@sql_connection ||= Mongify::Database::SqlConnection.new( :adapter => CONNECTION_CONFIG.mysql['adapter'],
|
4
6
|
:host => CONNECTION_CONFIG.mysql['host'],
|
@@ -8,11 +10,14 @@ class GenerateDatabase
|
|
8
10
|
:database => CONNECTION_CONFIG.mysql['database']
|
9
11
|
)
|
10
12
|
end
|
13
|
+
# Returns a sqlite connection (using the database.yml )
|
11
14
|
def self.sqlite_connection
|
12
15
|
@db_path = File.join(File.dirname(File.dirname(File.dirname(File.expand_path(__FILE__)))), CONNECTION_CONFIG.sqlite['database'])
|
13
16
|
|
14
17
|
@sqlite_connecton ||= Mongify::Database::SqlConnection.new(:adapter => CONNECTION_CONFIG.sqlite['adapter'], :database => @db_path)
|
15
18
|
end
|
19
|
+
|
20
|
+
# Creates a new mysql database (and deletes the old one)
|
16
21
|
def self.sqlite(include_data=true)
|
17
22
|
File.delete(sqlite_connection.database) if File.exists?(sqlite_connection.database)
|
18
23
|
|
@@ -90,10 +95,12 @@ class GenerateDatabase
|
|
90
95
|
sqlite_connection.database
|
91
96
|
end
|
92
97
|
|
98
|
+
# Drops the database in mongo
|
93
99
|
def self.clear_mongodb
|
94
100
|
mongo_connection.connection.drop_database mongo_connection.database
|
95
101
|
end
|
96
102
|
|
103
|
+
# Returns a mongo connection (based on the database.yml)
|
97
104
|
def self.mongo_connection
|
98
105
|
@mongodb_connection ||= Mongify::Database::NoSqlConnection.new(:host => CONNECTION_CONFIG.mongo['host'],
|
99
106
|
:port => CONNECTION_CONFIG.mongo['port'],
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.9
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Kalek
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-21 00:00:00 -05:00
|
19
19
|
default_executable: mongify
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -265,13 +265,13 @@ files:
|
|
265
265
|
- lib/mongify/cli/application.rb
|
266
266
|
- lib/mongify/cli/help_command.rb
|
267
267
|
- lib/mongify/cli/options.rb
|
268
|
-
- lib/mongify/cli/report.rb
|
269
268
|
- lib/mongify/cli/version_command.rb
|
270
269
|
- lib/mongify/cli/worker_command.rb
|
271
270
|
- lib/mongify/configuration.rb
|
272
271
|
- lib/mongify/database.rb
|
273
272
|
- lib/mongify/database/base_connection.rb
|
274
273
|
- lib/mongify/database/column.rb
|
274
|
+
- lib/mongify/database/data_row.rb
|
275
275
|
- lib/mongify/database/no_sql_connection.rb
|
276
276
|
- lib/mongify/database/sql_connection.rb
|
277
277
|
- lib/mongify/database/table.rb
|
@@ -294,6 +294,7 @@ files:
|
|
294
294
|
- spec/mongify/configuration_spec.rb
|
295
295
|
- spec/mongify/database/base_connection_spec.rb
|
296
296
|
- spec/mongify/database/column_spec.rb
|
297
|
+
- spec/mongify/database/data_row_spec.rb
|
297
298
|
- spec/mongify/database/no_sql_connection_spec.rb
|
298
299
|
- spec/mongify/database/sql_connection_spec.rb
|
299
300
|
- spec/mongify/database/table_spec.rb
|
@@ -367,6 +368,7 @@ test_files:
|
|
367
368
|
- spec/mongify/configuration_spec.rb
|
368
369
|
- spec/mongify/database/base_connection_spec.rb
|
369
370
|
- spec/mongify/database/column_spec.rb
|
371
|
+
- spec/mongify/database/data_row_spec.rb
|
370
372
|
- spec/mongify/database/no_sql_connection_spec.rb
|
371
373
|
- spec/mongify/database/sql_connection_spec.rb
|
372
374
|
- spec/mongify/database/table_spec.rb
|