dm-mapping 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,5 +1,9 @@
1
1
  = dm-mapper changes history
2
2
 
3
+ === dm-mapping 0.6.2, 2008-08-30
4
+ * mapping more data types for mysql.
5
+ * don't map TINYINT to TrueClass with mysql, skip it in type_map.
6
+
3
7
  === dm-mapping 0.6.1, 2008-08-22
4
8
  * gem 'dm-core', '>=0.9.3' instead of '=0.9.3'
5
9
 
data/README CHANGED
@@ -1,4 +1,4 @@
1
- = dm-mapping 0.6.1
1
+ = dm-mapping 0.6.2
2
2
  by Lin Jen-Shin (a.k.a. godfat-真常[http://godfat.org])
3
3
  godfat (XD) godfat.org
4
4
 
@@ -94,7 +94,7 @@ by Lin Jen-Shin (a.k.a. godfat-真常[http://godfat.org])
94
94
 
95
95
  == REQUIREMENTS:
96
96
 
97
- * dm-core 0.9.3
97
+ * dm-core 0.9.3 or later
98
98
  * at least one do_* adapter (currently supports sqlite3 and mysql)
99
99
 
100
100
  == INSTALL:
data/dm-mapping.gemspec CHANGED
@@ -1,11 +1,11 @@
1
1
 
2
2
  Gem::Specification.new do |s|
3
3
  s.name = %q{dm-mapping}
4
- s.version = "0.6.1"
4
+ s.version = "0.6.2"
5
5
 
6
6
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
7
7
  s.authors = ["Lin Jen-Shin (a.k.a. godfat \347\234\237\345\270\270)"]
8
- s.date = %q{2008-08-22}
8
+ s.date = %q{2008-08-30}
9
9
  s.description = %q{DataMapper plugin that helps you manipulate an existing database. It creates mappings between existing columns and model's properties.}
10
10
  s.email = %q{godfat (XD) godfat.org}
11
11
  s.extra_rdoc_files = ["CHANGES", "LICENSE", "NOTICE", "README", "TODO", "dm-mapping.gemspec"]
@@ -1,4 +1,6 @@
1
1
 
2
+ require 'dm-mapping/type_map'
3
+
2
4
  module DataMapper
3
5
  module Adapters
4
6
  class AbstractAdapter
@@ -1,6 +1,5 @@
1
1
 
2
2
  require 'dm-mapping/adapters/abstract_adapter'
3
- require 'dm-mapping/type_map'
4
3
 
5
4
  module DataMapper
6
5
  module Adapters
@@ -43,15 +42,17 @@ module DataMapper
43
42
  end
44
43
 
45
44
  def dmm_lookup_primitive primitive
46
- case primitive.upcase
47
- when 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'BIGINT', 'YEAR'; Integer
48
- when 'DOUBLE'; BigDecimal
49
- when 'BOOL'; TrueClass
50
- when 'CHAR', 'ENUM', 'SET', 'TINYBLOB', 'MEDIUMBLOB',
51
- 'BLOB', 'LONGBLOB', 'BINARY', 'VARBINARY'; String
52
- when 'TINYTEXT', 'MEDIUMTEXT', 'LONGTEXT'; DM::Text
53
- else super(primitive)
54
- end
45
+ p = primitive.upcase
46
+
47
+ return Integer if p == 'YEAR'
48
+ return Integer if p =~ /\w*INT(EGER)?( SIGNED| UNSIGNED)?( ZEROFILL)?/
49
+ return BigDecimal if p =~ /(DOUBLE|FLOAT|DECIMAL)( SIGNED| UNSIGNED)?( ZEROFILL)?/
50
+ return String if p =~ /\w*BLOB|\w*BINARY|ENUM|SET|CHAR/
51
+ return DM::Text if p =~ /\w*TEXT/
52
+ return TrueClass if %w[BOOL BOOLEAN].member?(p)
53
+ return Time if p == 'TIME'
54
+
55
+ super(primitive)
55
56
  end
56
57
  end
57
58
  end
@@ -1,6 +1,5 @@
1
1
 
2
2
  require 'dm-mapping/adapters/abstract_adapter'
3
- require 'dm-mapping/type_map'
4
3
 
5
4
  module DataMapper
6
5
  module Adapters
@@ -13,7 +13,9 @@ module DataMapper
13
13
  [Integer, Float, BigDecimal,
14
14
  String, TrueClass, FalseClass,
15
15
  DateTime, Date, Time,
16
- DM::Text, DM::Boolean].member?(type)
16
+ DM::Text, DM::Boolean].member?(type) &&
17
+ # TINYINT size 1 shouldn't map to TrueClass
18
+ chain.attributes[:size] != 1
17
19
  } or lookup_primitive(primitive, type_map.parent)
18
20
  end
19
21
  end
@@ -1,5 +1,5 @@
1
1
  module DataMapper
2
2
  module Mapping
3
- VERSION = '0.6.1' unless defined?(DataMapper::Mapping::VERSION)
3
+ VERSION = '0.6.2' unless defined?(DataMapper::Mapping::VERSION)
4
4
  end
5
5
  end
@@ -2,9 +2,12 @@
2
2
  require 'test/unit'
3
3
  require 'test/abstract'
4
4
 
5
- require 'dm-core/adapters/sqlite3_adapter'
6
- require 'dm-core/adapters/mysql_adapter'
7
- require 'dm-core/adapters/postgres_adapter'
5
+ %w[sqlite3 mysql postgres].each{ |adapter|
6
+ begin
7
+ require "dm-core/adapters/#{adapter}_adapter"
8
+ rescue LoadError
9
+ end
10
+ }
8
11
 
9
12
  class Sqlite3Test < Test::Unit::TestCase
10
13
  include Abstract
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-mapping
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Lin Jen-Shin (a.k.a. godfat \xE7\x9C\x9F\xE5\xB8\xB8)"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-22 00:00:00 +08:00
12
+ date: 2008-08-30 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency