mongify 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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.6)
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.6)
16
- activesupport (= 3.0.6)
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.6)
20
- activemodel (= 3.0.6)
21
- activesupport (= 3.0.6)
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.6)
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
- adaptor "mysql"
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
- Leaving a column out when defining a table will result in a copy of the information (as a string).
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
- when :key
125
- {"pre_mongified_id" => value.to_i}
126
- else
127
- {"#{name}" => type_cast(value)}
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 \"#{name}\", :#{type}".tap do |output|
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
 
@@ -7,7 +7,7 @@ module Mongify
7
7
  # Basic format should look something like this:
8
8
  #
9
9
  # sql_connection do
10
- # adaptor "mysql"
10
+ # adapter "mysql"
11
11
  # host "localhost"
12
12
  # username "root"
13
13
  # password "passw0rd"
@@ -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.present? ? c.translate(value) : {"#{key}" => value})
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
@@ -53,7 +53,7 @@ module Mongify
53
53
  # Creates an instance of HighLine
54
54
  # which lets us figure out width of console
55
55
  # plus a whole lot more
56
- # @reutrn [HighLine] instance
56
+ # @return [HighLine] instance
57
57
  def terminal_helper
58
58
  @terminal_helper ||= HighLine.new
59
59
  end
@@ -1,4 +1,4 @@
1
1
  module Mongify
2
2
  # Mongify's Current Version Number
3
- VERSION = "0.1.6"
3
+ VERSION = "0.1.7"
4
4
  end
@@ -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 adaptor to a string" do
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 "as integer" do
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 same values if column doesn't exist in the translation" do
247
- @table.translate({'age' => 18}).should == {'age' => 18}
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.6
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-04-13 00:00:00.000000000 -04:00
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: &2153527240 !ruby/object:Gem::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: *2153527240
24
+ version_requirements: *2153452920
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: activesupport
28
- requirement: &2153526780 !ruby/object:Gem::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: *2153526780
35
+ version_requirements: *2153452460
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: mysql2
39
- requirement: &2153526400 !ruby/object:Gem::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: *2153526400
46
+ version_requirements: *2153452080
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: mongo
50
- requirement: &2153525860 !ruby/object:Gem::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: *2153525860
57
+ version_requirements: *2153451540
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: bson_ext
61
- requirement: &2153525360 !ruby/object:Gem::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: *2153525360
68
+ version_requirements: *2153451040
70
69
  - !ruby/object:Gem::Dependency
71
70
  name: highline
72
- requirement: &2153524900 !ruby/object:Gem::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: *2153524900
79
+ version_requirements: *2153450580
81
80
  - !ruby/object:Gem::Dependency
82
81
  name: rspec
83
- requirement: &2153524440 !ruby/object:Gem::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: *2153524440
90
+ version_requirements: *2153450120
92
91
  - !ruby/object:Gem::Dependency
93
92
  name: rcov
94
- requirement: &2153523980 !ruby/object:Gem::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: *2153523980
101
+ version_requirements: *2153449660
103
102
  - !ruby/object:Gem::Dependency
104
103
  name: cucumber
105
- requirement: &2153523520 !ruby/object:Gem::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: *2153523520
112
+ version_requirements: *2153449200
114
113
  - !ruby/object:Gem::Dependency
115
114
  name: mocha
116
- requirement: &2153523060 !ruby/object:Gem::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: *2153523060
123
+ version_requirements: *2153448740
125
124
  - !ruby/object:Gem::Dependency
126
125
  name: yard
127
- requirement: &2153522600 !ruby/object:Gem::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: *2153522600
134
+ version_requirements: *2153448280
136
135
  - !ruby/object:Gem::Dependency
137
136
  name: watchr
138
- requirement: &2153522140 !ruby/object:Gem::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: *2153522140
145
+ version_requirements: *2153464180
147
146
  - !ruby/object:Gem::Dependency
148
147
  name: sqlite3-ruby
149
- requirement: &2153521680 !ruby/object:Gem::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: *2153521680
156
+ version_requirements: *2153463720
158
157
  - !ruby/object:Gem::Dependency
159
158
  name: mysql
160
- requirement: &2153521220 !ruby/object:Gem::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: *2153521220
167
+ version_requirements: *2153463260
169
168
  - !ruby/object:Gem::Dependency
170
169
  name: rake
171
- requirement: &2153520840 !ruby/object:Gem::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: *2153520840
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.6.2
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: