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 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: