mongify 0.1.6 → 0.1.7
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/.gitignore +6 -1
- data/CHANGELOG.rdoc +5 -0
- data/Gemfile.lock +7 -7
- data/README.rdoc +5 -3
- data/lib/mongify/database/column.rb +8 -8
- data/lib/mongify/database/sql_connection.rb +1 -1
- data/lib/mongify/database/table.rb +3 -3
- data/lib/mongify/ui.rb +1 -1
- data/lib/mongify/version.rb +1 -1
- data/spec/mongify/database/base_connection_spec.rb +1 -1
- data/spec/mongify/database/column_spec.rb +12 -1
- data/spec/mongify/database/table_spec.rb +9 -2
- metadata +34 -35
data/.gitignore
CHANGED
@@ -7,6 +7,9 @@ vendor/gems/gems
|
|
7
7
|
vendor/gems/specifications
|
8
8
|
vendor/gems/doc
|
9
9
|
vendor/gems/environment.rb
|
10
|
+
vendor/ruby
|
11
|
+
#not sure if this is the right way of doing this
|
12
|
+
vendor/cache
|
10
13
|
|
11
14
|
coverage.data
|
12
15
|
|
@@ -17,4 +20,6 @@ spec/tmp/*
|
|
17
20
|
|
18
21
|
.rvmrc
|
19
22
|
|
20
|
-
spec/support/database.yml
|
23
|
+
spec/support/database.yml
|
24
|
+
|
25
|
+
|
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 0.1.7 / 03 May 2011
|
2
|
+
* Changed logic to NOT translate columns that are not in the translation file. If column is not listed, it's not moved over.
|
3
|
+
* Fixed issue with case sensitivity of column names
|
4
|
+
* Made sure that default value returned is a string (when translating)
|
5
|
+
* Ensured to_s/to_print would output correct column name (even if it's renamed_to)
|
1
6
|
== 0.1.6 / 13 Apr 2011
|
2
7
|
* Removed no longer needed dependencies
|
3
8
|
* Small tweak to the cucumber tests to ensure correct feedback
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mongify (0.1.
|
4
|
+
mongify (0.1.7)
|
5
5
|
activerecord (>= 3.0.3)
|
6
6
|
activesupport (>= 3.0.3)
|
7
7
|
bson_ext (>= 1.1.5)
|
@@ -12,16 +12,16 @@ PATH
|
|
12
12
|
GEM
|
13
13
|
remote: http://rubygems.org/
|
14
14
|
specs:
|
15
|
-
activemodel (3.0.
|
16
|
-
activesupport (= 3.0.
|
15
|
+
activemodel (3.0.7)
|
16
|
+
activesupport (= 3.0.7)
|
17
17
|
builder (~> 2.1.2)
|
18
18
|
i18n (~> 0.5.0)
|
19
|
-
activerecord (3.0.
|
20
|
-
activemodel (= 3.0.
|
21
|
-
activesupport (= 3.0.
|
19
|
+
activerecord (3.0.7)
|
20
|
+
activemodel (= 3.0.7)
|
21
|
+
activesupport (= 3.0.7)
|
22
22
|
arel (~> 2.0.2)
|
23
23
|
tzinfo (~> 0.3.23)
|
24
|
-
activesupport (3.0.
|
24
|
+
activesupport (3.0.7)
|
25
25
|
arel (2.0.9)
|
26
26
|
bson (1.3.0)
|
27
27
|
bson_ext (1.3.0)
|
data/README.rdoc
CHANGED
@@ -24,7 +24,7 @@ In order for Mongify to do it's job, it needs to know where your databases are l
|
|
24
24
|
Building a config file is as simple as this:
|
25
25
|
|
26
26
|
sql_connection do
|
27
|
-
|
27
|
+
adapter "mysql"
|
28
28
|
host "localhost"
|
29
29
|
username "root"
|
30
30
|
password "passw0rd"
|
@@ -190,8 +190,10 @@ Structure for defining a column is as follows:
|
|
190
190
|
<em>Columns with no type given will be set to <tt>:string</tt></em>
|
191
191
|
|
192
192
|
==== Notes
|
193
|
-
|
194
|
-
|
193
|
+
|
194
|
+
<em>as of version 0.2:</em>
|
195
|
+
Leaving a column out when defining a table will result in the column being *ignored*
|
196
|
+
|
195
197
|
==== Types
|
196
198
|
|
197
199
|
Before we cover the options, you need to know what types of columns are supported:
|
@@ -121,17 +121,17 @@ module Mongify
|
|
121
121
|
def translate(value)
|
122
122
|
return {} if ignored?
|
123
123
|
case type
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
124
|
+
when :key
|
125
|
+
{"pre_mongified_id" => value.to_i}
|
126
|
+
else
|
127
|
+
{"#{self.name}" => type_cast(value)}
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
131
|
# Returns a string representation of the column as it would show in a translation file.
|
132
132
|
# Mainly used during print out of translation file
|
133
133
|
def to_print
|
134
|
-
"column \"#{
|
134
|
+
"column \"#{sql_name}\", :#{type}".tap do |output|
|
135
135
|
output_options = options.map{|k, v| (v == nil) ? nil : ":#{k} => \"#{v}\""}.compact
|
136
136
|
output << ", #{output_options.join(', ')}" unless output_options.blank?
|
137
137
|
end
|
@@ -230,8 +230,8 @@ module Mongify
|
|
230
230
|
def type_cast(value)
|
231
231
|
return nil if value.nil?
|
232
232
|
case type
|
233
|
-
when :string then value
|
234
|
-
when :text then value
|
233
|
+
when :string then value.to_s
|
234
|
+
when :text then value.to_s
|
235
235
|
when :integer then value.to_i
|
236
236
|
when :float then value.to_f
|
237
237
|
when :decimal
|
@@ -247,7 +247,7 @@ module Mongify
|
|
247
247
|
when :date then ActiveRecord::ConnectionAdapters::Column.string_to_time(value)
|
248
248
|
when :binary then ActiveRecord::ConnectionAdapters::Column.binary_to_string(value)
|
249
249
|
when :boolean then ActiveRecord::ConnectionAdapters::Column.value_to_boolean(value)
|
250
|
-
else value
|
250
|
+
else value.to_s
|
251
251
|
end
|
252
252
|
end
|
253
253
|
|
@@ -103,7 +103,7 @@ module Mongify
|
|
103
103
|
|
104
104
|
# Returns the column if found by the sql_name
|
105
105
|
def find_column(name)
|
106
|
-
return nil unless (index = @column_lookup[name.to_s.downcase])
|
106
|
+
return nil unless (index = @column_lookup[name.to_s.downcase.to_sym])
|
107
107
|
@columns[index]
|
108
108
|
end
|
109
109
|
|
@@ -118,7 +118,7 @@ module Mongify
|
|
118
118
|
new_row = {}
|
119
119
|
row.each do |key, value|
|
120
120
|
c = find_column(key)
|
121
|
-
new_row.merge!(c.
|
121
|
+
new_row.merge!(c.translate(value)) if c.present?
|
122
122
|
end
|
123
123
|
run_before_save(new_row)
|
124
124
|
end
|
@@ -172,7 +172,7 @@ module Mongify
|
|
172
172
|
|
173
173
|
# Indexes the column on the sql_name and adds column to the array
|
174
174
|
def add_and_index_column(column)
|
175
|
-
@column_lookup[column.sql_name] = @columns.size
|
175
|
+
@column_lookup[column.sql_name.downcase.to_sym] = @columns.size
|
176
176
|
@columns << column
|
177
177
|
column
|
178
178
|
end
|
data/lib/mongify/ui.rb
CHANGED
data/lib/mongify/version.rb
CHANGED
@@ -42,7 +42,7 @@ describe Mongify::Database::BaseConnection do
|
|
42
42
|
@base_connection.respond_to?(:host).should be_true
|
43
43
|
end
|
44
44
|
|
45
|
-
it "should force
|
45
|
+
it "should force adapter to a string" do
|
46
46
|
@base_connection.adapter :sqlite
|
47
47
|
@base_connection.adapter.should == 'sqlite'
|
48
48
|
end
|
@@ -100,6 +100,11 @@ describe Mongify::Database::Column do
|
|
100
100
|
@column.translate('value').should == {'last_name' => 'value'}
|
101
101
|
end
|
102
102
|
|
103
|
+
it "should rename this" do
|
104
|
+
@column = Mongify::Database::Column.new("geoCode_longitude", :string, :rename_to => 'longitude')
|
105
|
+
@column.translate(42.2222).should == {'longitude' => '42.2222'}
|
106
|
+
end
|
107
|
+
|
103
108
|
it "should be renamed" do
|
104
109
|
@column.should be_renamed
|
105
110
|
end
|
@@ -258,7 +263,7 @@ describe Mongify::Database::Column do
|
|
258
263
|
@column.send(:type_cast, 101.43).should be_a_kind_of String
|
259
264
|
end
|
260
265
|
|
261
|
-
context
|
266
|
+
context :integer do
|
262
267
|
before(:each) do
|
263
268
|
@column = Mongify::Database::Column.new('price', :decimal, :as => 'integer')
|
264
269
|
@value = 101.123455
|
@@ -322,6 +327,12 @@ describe Mongify::Database::Column do
|
|
322
327
|
@column.send(:type_cast, "Something of a body").should == "Something of a body"
|
323
328
|
end
|
324
329
|
end
|
330
|
+
context :string do
|
331
|
+
it "should return a string" do
|
332
|
+
@column = Mongify::Database::Column.new('body', :string)
|
333
|
+
@column.send(:type_cast, 42.222).should == "42.222"
|
334
|
+
end
|
335
|
+
end
|
325
336
|
context :boolean do
|
326
337
|
before(:each) do
|
327
338
|
@column = Mongify::Database::Column.new('email_me', :boolean)
|
@@ -68,6 +68,12 @@ describe Mongify::Database::Table do
|
|
68
68
|
@table.find_column('dark').should == col
|
69
69
|
end
|
70
70
|
|
71
|
+
it "should be able to find (case sensitive)" do
|
72
|
+
col = @table.column 'geoCode'
|
73
|
+
@table.column 'filler'
|
74
|
+
@table.find_column('geoCode').should == col
|
75
|
+
end
|
76
|
+
|
71
77
|
it "should be searchable with sql_name only" do
|
72
78
|
col = @table.column 'surname', :string, :rename_to => 'last_name'
|
73
79
|
@table.find_column('surname').should == col
|
@@ -184,6 +190,7 @@ describe Mongify::Database::Table do
|
|
184
190
|
context "before_save" do
|
185
191
|
before(:each) do
|
186
192
|
@table = Mongify::Database::Table.new('users')
|
193
|
+
@table.column "permission"
|
187
194
|
@table.before_save do |row|
|
188
195
|
row.admin = row.delete('permission').to_i > 50
|
189
196
|
end
|
@@ -243,8 +250,8 @@ describe Mongify::Database::Table do
|
|
243
250
|
@table.translate({'first_name' => 'Timmy', 'last_name' => 'Zuza'})
|
244
251
|
end
|
245
252
|
|
246
|
-
it "should return
|
247
|
-
@table.translate({'age' => 18}).should == {
|
253
|
+
it "should not return any value if column doesn't exist in the translation" do
|
254
|
+
@table.translate({'age' => 18}).should == {}
|
248
255
|
end
|
249
256
|
end
|
250
257
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
13
|
-
default_executable:
|
12
|
+
date: 2011-05-03 00:00:00.000000000Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activerecord
|
17
|
-
requirement: &
|
16
|
+
requirement: &2153452920 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ! '>='
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
version: 3.0.3
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153452920
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: activesupport
|
28
|
-
requirement: &
|
27
|
+
requirement: &2153452460 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ! '>='
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: 3.0.3
|
34
33
|
type: :runtime
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153452460
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: mysql2
|
39
|
-
requirement: &
|
38
|
+
requirement: &2153452080 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ! '>='
|
@@ -44,10 +43,10 @@ dependencies:
|
|
44
43
|
version: '0'
|
45
44
|
type: :runtime
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *2153452080
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: mongo
|
50
|
-
requirement: &
|
49
|
+
requirement: &2153451540 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
51
|
requirements:
|
53
52
|
- - ! '>='
|
@@ -55,10 +54,10 @@ dependencies:
|
|
55
54
|
version: 1.1.5
|
56
55
|
type: :runtime
|
57
56
|
prerelease: false
|
58
|
-
version_requirements: *
|
57
|
+
version_requirements: *2153451540
|
59
58
|
- !ruby/object:Gem::Dependency
|
60
59
|
name: bson_ext
|
61
|
-
requirement: &
|
60
|
+
requirement: &2153451040 !ruby/object:Gem::Requirement
|
62
61
|
none: false
|
63
62
|
requirements:
|
64
63
|
- - ! '>='
|
@@ -66,10 +65,10 @@ dependencies:
|
|
66
65
|
version: 1.1.5
|
67
66
|
type: :runtime
|
68
67
|
prerelease: false
|
69
|
-
version_requirements: *
|
68
|
+
version_requirements: *2153451040
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
70
|
name: highline
|
72
|
-
requirement: &
|
71
|
+
requirement: &2153450580 !ruby/object:Gem::Requirement
|
73
72
|
none: false
|
74
73
|
requirements:
|
75
74
|
- - ! '>='
|
@@ -77,10 +76,10 @@ dependencies:
|
|
77
76
|
version: 1.6.1
|
78
77
|
type: :runtime
|
79
78
|
prerelease: false
|
80
|
-
version_requirements: *
|
79
|
+
version_requirements: *2153450580
|
81
80
|
- !ruby/object:Gem::Dependency
|
82
81
|
name: rspec
|
83
|
-
requirement: &
|
82
|
+
requirement: &2153450120 !ruby/object:Gem::Requirement
|
84
83
|
none: false
|
85
84
|
requirements:
|
86
85
|
- - ! '>='
|
@@ -88,10 +87,10 @@ dependencies:
|
|
88
87
|
version: '2.0'
|
89
88
|
type: :development
|
90
89
|
prerelease: false
|
91
|
-
version_requirements: *
|
90
|
+
version_requirements: *2153450120
|
92
91
|
- !ruby/object:Gem::Dependency
|
93
92
|
name: rcov
|
94
|
-
requirement: &
|
93
|
+
requirement: &2153449660 !ruby/object:Gem::Requirement
|
95
94
|
none: false
|
96
95
|
requirements:
|
97
96
|
- - ! '>='
|
@@ -99,10 +98,10 @@ dependencies:
|
|
99
98
|
version: 0.9.9
|
100
99
|
type: :development
|
101
100
|
prerelease: false
|
102
|
-
version_requirements: *
|
101
|
+
version_requirements: *2153449660
|
103
102
|
- !ruby/object:Gem::Dependency
|
104
103
|
name: cucumber
|
105
|
-
requirement: &
|
104
|
+
requirement: &2153449200 !ruby/object:Gem::Requirement
|
106
105
|
none: false
|
107
106
|
requirements:
|
108
107
|
- - ! '>='
|
@@ -110,10 +109,10 @@ dependencies:
|
|
110
109
|
version: '0.10'
|
111
110
|
type: :development
|
112
111
|
prerelease: false
|
113
|
-
version_requirements: *
|
112
|
+
version_requirements: *2153449200
|
114
113
|
- !ruby/object:Gem::Dependency
|
115
114
|
name: mocha
|
116
|
-
requirement: &
|
115
|
+
requirement: &2153448740 !ruby/object:Gem::Requirement
|
117
116
|
none: false
|
118
117
|
requirements:
|
119
118
|
- - ! '>='
|
@@ -121,10 +120,10 @@ dependencies:
|
|
121
120
|
version: 0.9.8
|
122
121
|
type: :development
|
123
122
|
prerelease: false
|
124
|
-
version_requirements: *
|
123
|
+
version_requirements: *2153448740
|
125
124
|
- !ruby/object:Gem::Dependency
|
126
125
|
name: yard
|
127
|
-
requirement: &
|
126
|
+
requirement: &2153448280 !ruby/object:Gem::Requirement
|
128
127
|
none: false
|
129
128
|
requirements:
|
130
129
|
- - ! '>='
|
@@ -132,10 +131,10 @@ dependencies:
|
|
132
131
|
version: 0.5.3
|
133
132
|
type: :development
|
134
133
|
prerelease: false
|
135
|
-
version_requirements: *
|
134
|
+
version_requirements: *2153448280
|
136
135
|
- !ruby/object:Gem::Dependency
|
137
136
|
name: watchr
|
138
|
-
requirement: &
|
137
|
+
requirement: &2153464180 !ruby/object:Gem::Requirement
|
139
138
|
none: false
|
140
139
|
requirements:
|
141
140
|
- - ! '>='
|
@@ -143,10 +142,10 @@ dependencies:
|
|
143
142
|
version: '0.6'
|
144
143
|
type: :development
|
145
144
|
prerelease: false
|
146
|
-
version_requirements: *
|
145
|
+
version_requirements: *2153464180
|
147
146
|
- !ruby/object:Gem::Dependency
|
148
147
|
name: sqlite3-ruby
|
149
|
-
requirement: &
|
148
|
+
requirement: &2153463720 !ruby/object:Gem::Requirement
|
150
149
|
none: false
|
151
150
|
requirements:
|
152
151
|
- - ! '>='
|
@@ -154,10 +153,10 @@ dependencies:
|
|
154
153
|
version: '1.3'
|
155
154
|
type: :development
|
156
155
|
prerelease: false
|
157
|
-
version_requirements: *
|
156
|
+
version_requirements: *2153463720
|
158
157
|
- !ruby/object:Gem::Dependency
|
159
158
|
name: mysql
|
160
|
-
requirement: &
|
159
|
+
requirement: &2153463260 !ruby/object:Gem::Requirement
|
161
160
|
none: false
|
162
161
|
requirements:
|
163
162
|
- - ! '>='
|
@@ -165,10 +164,10 @@ dependencies:
|
|
165
164
|
version: 2.8.1
|
166
165
|
type: :development
|
167
166
|
prerelease: false
|
168
|
-
version_requirements: *
|
167
|
+
version_requirements: *2153463260
|
169
168
|
- !ruby/object:Gem::Dependency
|
170
169
|
name: rake
|
171
|
-
requirement: &
|
170
|
+
requirement: &2153462880 !ruby/object:Gem::Requirement
|
172
171
|
none: false
|
173
172
|
requirements:
|
174
173
|
- - ! '>='
|
@@ -176,7 +175,7 @@ dependencies:
|
|
176
175
|
version: '0'
|
177
176
|
type: :development
|
178
177
|
prerelease: false
|
179
|
-
version_requirements: *
|
178
|
+
version_requirements: *2153462880
|
180
179
|
description: Mongify allows you to map your sql data into a mongodb document database
|
181
180
|
with a simple DSL.
|
182
181
|
email:
|
@@ -254,7 +253,6 @@ files:
|
|
254
253
|
- spec/support/database_generator.rb
|
255
254
|
- spec/support/database_output.txt
|
256
255
|
- spec/tmp/.gitignore
|
257
|
-
has_rdoc: true
|
258
256
|
homepage: http://mongify.com
|
259
257
|
licenses: []
|
260
258
|
post_install_message:
|
@@ -281,7 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
281
279
|
version: '0'
|
282
280
|
requirements: []
|
283
281
|
rubyforge_project:
|
284
|
-
rubygems_version: 1.
|
282
|
+
rubygems_version: 1.7.2
|
285
283
|
signing_key:
|
286
284
|
specification_version: 3
|
287
285
|
summary: Translate your SQL data to MongoDB with ease
|
@@ -320,3 +318,4 @@ test_files:
|
|
320
318
|
- spec/support/database_generator.rb
|
321
319
|
- spec/support/database_output.txt
|
322
320
|
- spec/tmp/.gitignore
|
321
|
+
has_rdoc:
|