dm-core 1.2.0.rc1 → 1.2.0.rc2

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/Gemfile CHANGED
@@ -5,9 +5,10 @@ source 'http://rubygems.org'
5
5
  SOURCE = ENV.fetch('SOURCE', :git).to_sym
6
6
  REPO_POSTFIX = SOURCE == :path ? '' : '.git'
7
7
  DATAMAPPER = SOURCE == :path ? Pathname(__FILE__).dirname.parent : 'http://github.com/datamapper'
8
- DM_VERSION = '~> 1.2.0.rc1'
8
+ DM_VERSION = '~> 1.2.0.rc2'
9
9
  DO_VERSION = '~> 0.10.6'
10
10
  DM_DO_ADAPTERS = %w[ sqlite postgres mysql oracle sqlserver ]
11
+ CURRENT_BRANCH = ENV.fetch('GIT_BRANCH', 'master')
11
12
 
12
13
  gem 'addressable', '~> 2.2.6'
13
14
 
@@ -48,18 +49,24 @@ group :datamapper do
48
49
  gem "do_#{adapter}", DO_VERSION, do_options.dup
49
50
  end
50
51
 
51
- gem 'dm-do-adapter', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-do-adapter#{REPO_POSTFIX}"
52
+ gem 'dm-do-adapter', DM_VERSION,
53
+ SOURCE => "#{DATAMAPPER}/dm-do-adapter#{REPO_POSTFIX}",
54
+ :branch => CURRENT_BRANCH
52
55
  end
53
56
 
54
57
  adapters.each do |adapter|
55
- gem "dm-#{adapter}-adapter", ENV.fetch('ADAPTER_VERSION', DM_VERSION), SOURCE => "#{DATAMAPPER}/dm-#{adapter}-adapter#{REPO_POSTFIX}"
58
+ gem "dm-#{adapter}-adapter", ENV.fetch('ADAPTER_VERSION', DM_VERSION),
59
+ SOURCE => "#{DATAMAPPER}/dm-#{adapter}-adapter#{REPO_POSTFIX}",
60
+ :branch => CURRENT_BRANCH
56
61
  end
57
62
 
58
63
  plugins = ENV['PLUGINS'] || ENV['PLUGIN']
59
64
  plugins = plugins.to_s.tr(',', ' ').split.push('dm-migrations').uniq
60
65
 
61
66
  plugins.each do |plugin|
62
- gem plugin, DM_VERSION, SOURCE => "#{DATAMAPPER}/#{plugin}#{REPO_POSTFIX}"
67
+ gem plugin, DM_VERSION,
68
+ SOURCE => "#{DATAMAPPER}/#{plugin}#{REPO_POSTFIX}",
69
+ :branch => CURRENT_BRANCH
63
70
  end
64
71
 
65
72
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0.rc1
1
+ 1.2.0.rc2
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "dm-core"
8
- s.version = "1.2.0.rc1"
8
+ s.version = "1.2.0.rc2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dan Kubb"]
12
- s.date = "2011-09-09"
12
+ s.date = "2011-09-20"
13
13
  s.description = "Faster, Better, Simpler."
14
14
  s.email = "dan.kubb@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -2,6 +2,21 @@ module DataMapper
2
2
  class Property
3
3
  class Binary < String
4
4
  include PassThroughLoadDump
5
+
6
+ if RUBY_VERSION >= "1.9"
7
+
8
+ def load(value)
9
+ super.dup.force_encoding("BINARY") unless value.nil?
10
+ end
11
+
12
+ def dump(value)
13
+ value.dup.force_encoding("BINARY") unless value.nil?
14
+ rescue
15
+ value
16
+ end
17
+
18
+ end
19
+
5
20
  end # class Binary
6
21
  end # class Property
7
22
  end # module DataMapper
@@ -15,8 +15,8 @@ module DataMapper
15
15
  super
16
16
 
17
17
  [ :scale, :precision ].each do |key|
18
- unless options.key?(key)
19
- warn "options[#{key.inspect}] should be set for #{self.class}, defaulting to #{send(key).inspect}"
18
+ unless @options.key?(key)
19
+ warn "options[#{key.inspect}] should be set for #{self.class}, defaulting to #{send(key).inspect} (#{caller.first})"
20
20
  end
21
21
  end
22
22
 
@@ -73,19 +73,13 @@ share_examples_for 'A semipublic Property' do
73
73
  end
74
74
 
75
75
  describe '#load' do
76
- before :all do
77
- @value = mock(@value)
78
- end
79
-
80
76
  subject { @property.load(@value) }
81
77
 
82
- describe 'with a property' do
83
- it 'should delegate to #typecast' do
84
- return_value = mock(@other_value)
85
- @property.should_receive(:typecast).with(@value).and_return(return_value)
86
- should == return_value
87
- end
78
+ before do
79
+ @property.should_receive(:typecast).with(@value).and_return(@value)
88
80
  end
81
+
82
+ it { should eql(@value) }
89
83
  end
90
84
 
91
85
  describe "#typecast" do
@@ -19,4 +19,23 @@ describe DataMapper::Property::Binary do
19
19
 
20
20
  it { should eql(:primitive => @primitive, :length => 50) }
21
21
  end
22
+
23
+ if RUBY_VERSION >= "1.9"
24
+ describe 'encoding' do
25
+ let(:model) do
26
+ Class.new do
27
+ include ::DataMapper::Resource
28
+ property :bin_data, ::DataMapper::Property::Binary
29
+ end
30
+ end
31
+
32
+ it 'should always dump with BINARY' do
33
+ model.bin_data.dump("foo".freeze).encoding.names.should include("BINARY")
34
+ end
35
+
36
+ it 'should always load with BINARY' do
37
+ model.bin_data.load("foo".freeze).encoding.names.should include("BINARY")
38
+ end
39
+ end
40
+ end
22
41
  end
@@ -11,24 +11,6 @@ describe DataMapper::Property::Boolean do
11
11
 
12
12
  it_should_behave_like 'A semipublic Property'
13
13
 
14
- describe '#load' do
15
- before :all do
16
- @value = mock('value')
17
- end
18
-
19
- subject { @property.load(@value) }
20
-
21
- before do
22
- @property = @type.new(@model, @name)
23
- end
24
-
25
- it 'should delegate to #type.load' do
26
- return_value = mock('return value')
27
- @property.should_receive(:load).with(@value).and_return(return_value)
28
- should == return_value
29
- end
30
- end
31
-
32
14
  describe '#valid?' do
33
15
  [ true, false ].each do |value|
34
16
  it "returns true when value is #{value.inspect}" do
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15424023
4
+ hash: 15424017
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
9
  - 0
10
10
  - rc
11
- - 1
12
- version: 1.2.0.rc1
11
+ - 2
12
+ version: 1.2.0.rc2
13
13
  platform: ruby
14
14
  authors:
15
15
  - Dan Kubb
@@ -17,11 +17,12 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2011-09-09 00:00:00 Z
20
+ date: 2011-09-21 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  type: :runtime
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
25
26
  none: false
26
27
  requirements:
27
28
  - - ~>
@@ -32,12 +33,12 @@ dependencies:
32
33
  - 2
33
34
  - 6
34
35
  version: 2.2.6
35
- prerelease: false
36
- requirement: *id001
36
+ version_requirements: *id001
37
37
  name: addressable
38
38
  - !ruby/object:Gem::Dependency
39
39
  type: :development
40
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
41
42
  none: false
42
43
  requirements:
43
44
  - - ~>
@@ -48,12 +49,12 @@ dependencies:
48
49
  - 6
49
50
  - 4
50
51
  version: 1.6.4
51
- prerelease: false
52
- requirement: *id002
52
+ version_requirements: *id002
53
53
  name: jeweler
54
54
  - !ruby/object:Gem::Dependency
55
55
  type: :development
56
- version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
57
58
  none: false
58
59
  requirements:
59
60
  - - ~>
@@ -64,12 +65,12 @@ dependencies:
64
65
  - 9
65
66
  - 2
66
67
  version: 0.9.2
67
- prerelease: false
68
- requirement: *id003
68
+ version_requirements: *id003
69
69
  name: rake
70
70
  - !ruby/object:Gem::Dependency
71
71
  type: :development
72
- version_requirements: &id004 !ruby/object:Gem::Requirement
72
+ prerelease: false
73
+ requirement: &id004 !ruby/object:Gem::Requirement
73
74
  none: false
74
75
  requirements:
75
76
  - - ~>
@@ -80,8 +81,7 @@ dependencies:
80
81
  - 3
81
82
  - 2
82
83
  version: 1.3.2
83
- prerelease: false
84
- requirement: *id004
84
+ version_requirements: *id004
85
85
  name: rspec
86
86
  description: Faster, Better, Simpler.
87
87
  email: dan.kubb@gmail.com