godfat-dm-mapping 0.6.1 → 0.6.2

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/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: godfat-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 -07:00
12
+ date: 2008-08-30 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency