dm-types 1.0.2 → 1.1.0.rc1

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
@@ -1,116 +1,48 @@
1
- # If you're working on more than one datamapper gem at a time, then it's
2
- # recommended to create a local Gemfile and use this instead of the git
3
- # sources. This will make sure that you are developing against your
4
- # other local datamapper sources that you currently work on. Gemfile.local
5
- # will behave identically to the standard Gemfile apart from the fact that
6
- # it fetches the datamapper gems from local paths. This means that you can use
7
- # the same environment variables, like ADAPTER(S) or PLUGIN(S) when running
8
- # bundle commands. Gemfile.local is added to .gitignore, so you don't need to
9
- # worry about accidentally checking local development paths into git.
10
- # In order to create a local Gemfile, all you need to do is run:
11
- #
12
- # bundle exec rake local_gemfile
13
- #
14
- # This will give you a Gemfile.local file that points to your local clones of
15
- # the various datamapper gems. It's assumed that all datamapper repo clones
16
- # reside in the same directory. You can use the Gemfile.local like so for
17
- # running any bundle command:
18
- #
19
- # BUNDLE_GEMFILE=Gemfile.local bundle foo
20
- #
21
- # You can also specify which adapter(s) should be part of the bundle by setting
22
- # an environment variable. This of course also works when using the Gemfile.local
23
- #
24
- # bundle foo # dm-sqlite-adapter
25
- # ADAPTER=mysql bundle foo # dm-mysql-adapter
26
- # ADAPTERS=sqlite,mysql bundle foo # dm-sqlite-adapter and dm-mysql-adapter
27
- #
28
- # Of course you can also use the ADAPTER(S) variable when using the Gemfile.local
29
- # and running specs against selected adapters.
30
- #
31
- # For easily working with adapters supported on your machine, it's recommended
32
- # that you first install all adapters that you are planning to use or work on
33
- # by doing something like
34
- #
35
- # ADAPTERS=sqlite,mysql,postgres bundle install
36
- #
37
- # This will clone the various repositories and make them available to bundler.
38
- # Once you have them installed you can easily switch between adapters for the
39
- # various development tasks. Running something like
40
- #
41
- # ADAPTER=mysql bundle exec rake spec
42
- #
43
- # will make sure that the dm-mysql-adapter is part of the bundle, and will be used
44
- # when running the specs.
45
- #
46
- # You can also specify which plugin(s) should be part of the bundle by setting
47
- # an environment variable. This also works when using the Gemfile.local
48
- #
49
- # bundle foo # dm-migrations
50
- # PLUGINS=dm-validations bundle foo # dm-migrations and dm-validations
51
- # PLUGINS=dm-validations,dm-types bundle foo # dm-migrations, dm-validations and dm-types
52
- #
53
- # Of course you can combine the PLUGIN(S) and ADAPTER(S) env vars to run specs
54
- # for certain adapter/plugin combinations.
55
- #
56
- # Finally, to speed up running specs and other tasks, it's recommended to run
57
- #
58
- # bundle lock
59
- #
60
- # after running 'bundle install' for the first time. This will make 'bundle exec' run
61
- # a lot faster compared to the unlocked version. With an unlocked bundle you would
62
- # typically just run 'bundle install' from time to time to fetch the latest sources from
63
- # upstream. When you locked your bundle, you need to run
64
- #
65
- # bundle install --relock
66
- #
67
- # to make sure to fetch the latest updates and then lock the bundle again. Gemfile.lock
68
- # is added to the .gitignore file, so you don't need to worry about accidentally checking
69
- # it into version control.
1
+ require 'pathname'
70
2
 
71
3
  source 'http://rubygems.org'
72
4
 
73
- DATAMAPPER = 'git://github.com/datamapper'
74
- DM_VERSION = '~> 1.0.2'
5
+ SOURCE = ENV.fetch('SOURCE', :git).to_sym
6
+ REPO_POSTFIX = SOURCE == :path ? '' : '.git'
7
+ DATAMAPPER = SOURCE == :path ? Pathname(__FILE__).dirname.parent : 'http://github.com/datamapper'
8
+ DM_VERSION = '~> 1.1.0.rc1'
75
9
 
76
- group :runtime do # Runtime dependencies (as in the gemspec)
10
+ group :runtime do
77
11
 
78
12
  if ENV['EXTLIB']
79
- gem 'extlib', '~> 0.9.15', :git => "#{DATAMAPPER}/extlib.git"
13
+ gem 'extlib', '~> 0.9.15', SOURCE => "#{DATAMAPPER}/extlib#{REPO_POSTFIX}", :require => nil
80
14
  else
81
- gem 'activesupport', '~> 3.0.0', :git => 'git://github.com/rails/rails.git', :branch => '3-0-stable', :require => nil
15
+ gem 'activesupport', '~> 3.0.4', :require => nil
16
+ gem 'i18n', '~> 0.5.0'
82
17
  end
83
18
 
84
- gem 'dm-core', DM_VERSION, :git => "#{DATAMAPPER}/dm-core.git"
85
- gem 'fastercsv', '~> 1.5.3'
86
- gem 'json_pure', '~> 1.4.3'
87
- gem 'uuidtools', '~> 2.1.1'
88
- gem 'stringex', '~> 1.1.0'
19
+ gem 'bcrypt-ruby', '~> 2.1.4'
20
+ gem 'dm-core', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-core#{REPO_POSTFIX}"
21
+ gem 'fastercsv', '~> 1.5.3'
22
+ gem 'json', '~> 1.5.1'
23
+ gem 'stringex', '~> 1.1.0'
24
+ gem 'uuidtools', '~> 2.1.1'
89
25
 
90
26
  end
91
27
 
92
- group(:development) do # Development dependencies (as in the gemspec)
93
-
94
- gem 'dm-validations', DM_VERSION, :git => "#{DATAMAPPER}/dm-validations.git"
28
+ group :development do
95
29
 
30
+ gem 'dm-validations', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-validations#{REPO_POSTFIX}"
31
+ gem 'jeweler', '~> 1.5.2'
96
32
  gem 'rake', '~> 0.8.7'
97
- gem 'rspec', '~> 1.3', :git => 'git://github.com/snusnu/rspec', :branch => 'heckle_fix_plus_gemfile'
98
- gem 'jeweler', '~> 1.4'
33
+ gem 'rspec', '~> 1.3.1'
99
34
 
100
35
  end
101
36
 
102
- group :quality do # These gems contain rake tasks that check the quality of the source code
37
+ group :quality do
103
38
 
104
- gem 'metric_fu', '~> 1.3'
105
- gem 'rcov', '~> 0.9.8'
106
- gem 'reek', '~> 1.2.8'
107
- gem 'roodi', '~> 2.1'
108
- gem 'yard', '~> 0.5'
109
- gem 'yardstick', '~> 0.1'
39
+ gem 'rcov', '~> 0.9.9', :platforms => :mri_18
40
+ gem 'yard', '~> 0.6'
41
+ gem 'yardstick', '~> 0.2'
110
42
 
111
43
  end
112
44
 
113
- group :datamapper do # We need this because we want to pin these dependencies to their git master sources
45
+ group :datamapper do
114
46
 
115
47
  adapters = ENV['ADAPTER'] || ENV['ADAPTERS']
116
48
  adapters = adapters.to_s.tr(',', ' ').split.uniq - %w[ in_memory ]
@@ -120,27 +52,27 @@ group :datamapper do # We need this because we want to pin these dependencies to
120
52
 
121
53
  if (do_adapters = DM_DO_ADAPTERS & adapters).any?
122
54
  options = {}
123
- options[:git] = "#{DATAMAPPER}/do.git" if ENV['DO_GIT'] == 'true'
55
+ options[:git] = "#{DATAMAPPER}/do#{REPO_POSTFIX}" if ENV['DO_GIT'] == 'true'
124
56
 
125
- gem 'data_objects', DO_VERSION, options.dup
57
+ gem 'data_objects', DO_VERSION, options.dup
126
58
 
127
59
  do_adapters.each do |adapter|
128
60
  adapter = 'sqlite3' if adapter == 'sqlite'
129
61
  gem "do_#{adapter}", DO_VERSION, options.dup
130
62
  end
131
63
 
132
- gem 'dm-do-adapter', DM_VERSION, :git => "#{DATAMAPPER}/dm-do-adapter.git"
64
+ gem 'dm-do-adapter', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-do-adapter#{REPO_POSTFIX}"
133
65
  end
134
66
 
135
67
  adapters.each do |adapter|
136
- gem "dm-#{adapter}-adapter", DM_VERSION, :git => "#{DATAMAPPER}/dm-#{adapter}-adapter.git"
68
+ gem "dm-#{adapter}-adapter", DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-#{adapter}-adapter#{REPO_POSTFIX}"
137
69
  end
138
70
 
139
71
  plugins = ENV['PLUGINS'] || ENV['PLUGIN']
140
72
  plugins = plugins.to_s.tr(',', ' ').split.push('dm-migrations').uniq
141
73
 
142
74
  plugins.each do |plugin|
143
- gem plugin, DM_VERSION, :git => "#{DATAMAPPER}/#{plugin}.git"
75
+ gem plugin, DM_VERSION, SOURCE => "#{DATAMAPPER}/#{plugin}#{REPO_POSTFIX}"
144
76
  end
145
77
 
146
78
  end
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008, 2009, 2010 Sam Smoot, Dan Kubb
1
+ Copyright (c) 2011 Sam Smoot, Dan Kubb
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
 
4
4
  begin
5
- gem 'jeweler', '~> 1.4'
5
+ gem 'jeweler', '~> 1.5.2'
6
6
  require 'jeweler'
7
7
 
8
8
  Jeweler::Tasks.new do |gem|
@@ -15,20 +15,11 @@ begin
15
15
  gem.has_rdoc = 'yard'
16
16
 
17
17
  gem.rubyforge_project = 'datamapper'
18
-
19
- gem.add_dependency 'dm-core', '~> 1.0.2'
20
- gem.add_dependency 'fastercsv', '~> 1.5.3'
21
- gem.add_dependency 'json_pure', '~> 1.4'
22
- gem.add_dependency 'uuidtools', '~> 2.1.1'
23
- gem.add_dependency 'stringex', '~> 1.1.0'
24
-
25
- gem.add_development_dependency 'rspec', '~> 1.3'
26
- gem.add_development_dependency 'dm-validations', '~> 1.0.2'
27
18
  end
28
19
 
29
20
  Jeweler::GemcutterTasks.new
30
21
 
31
22
  FileList['tasks/**/*.rake'].each { |task| import task }
32
23
  rescue LoadError
33
- puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
24
+ puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler -v 1.5.2'
34
25
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.1.0.rc1
data/dm-types.gemspec CHANGED
@@ -1,168 +1,176 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dm-types}
8
- s.version = "1.0.2"
8
+ s.version = "1.1.0.rc1"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
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 = %q{2010-09-07}
12
+ s.date = %q{2011-02-28}
13
13
  s.description = %q{DataMapper plugin providing extra data types}
14
14
  s.email = %q{dan.kubb [a] gmail [d] com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
- ".gitignore",
21
- "Gemfile",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "dm-types.gemspec",
27
- "lib/dm-types.rb",
28
- "lib/dm-types/bcrypt_hash.rb",
29
- "lib/dm-types/comma_separated_list.rb",
30
- "lib/dm-types/csv.rb",
31
- "lib/dm-types/enum.rb",
32
- "lib/dm-types/epoch_time.rb",
33
- "lib/dm-types/file_path.rb",
34
- "lib/dm-types/flag.rb",
35
- "lib/dm-types/ip_address.rb",
36
- "lib/dm-types/json.rb",
37
- "lib/dm-types/paranoid/base.rb",
38
- "lib/dm-types/paranoid_boolean.rb",
39
- "lib/dm-types/paranoid_datetime.rb",
40
- "lib/dm-types/regexp.rb",
41
- "lib/dm-types/slug.rb",
42
- "lib/dm-types/support/flags.rb",
43
- "lib/dm-types/uri.rb",
44
- "lib/dm-types/uuid.rb",
45
- "lib/dm-types/yaml.rb",
46
- "spec/fixtures/article.rb",
47
- "spec/fixtures/bookmark.rb",
48
- "spec/fixtures/invention.rb",
49
- "spec/fixtures/network_node.rb",
50
- "spec/fixtures/person.rb",
51
- "spec/fixtures/software_package.rb",
52
- "spec/fixtures/ticket.rb",
53
- "spec/fixtures/tshirt.rb",
54
- "spec/integration/bcrypt_hash_spec.rb",
55
- "spec/integration/comma_separated_list_spec.rb",
56
- "spec/integration/enum_spec.rb",
57
- "spec/integration/file_path_spec.rb",
58
- "spec/integration/flag_spec.rb",
59
- "spec/integration/ip_address_spec.rb",
60
- "spec/integration/json_spec.rb",
61
- "spec/integration/slug_spec.rb",
62
- "spec/integration/uri_spec.rb",
63
- "spec/integration/uuid_spec.rb",
64
- "spec/integration/yaml_spec.rb",
65
- "spec/rcov.opts",
66
- "spec/shared/flags_shared_spec.rb",
67
- "spec/shared/identity_function_group.rb",
68
- "spec/spec.opts",
69
- "spec/spec_helper.rb",
70
- "spec/unit/bcrypt_hash_spec.rb",
71
- "spec/unit/csv_spec.rb",
72
- "spec/unit/enum_spec.rb",
73
- "spec/unit/epoch_time_spec.rb",
74
- "spec/unit/file_path_spec.rb",
75
- "spec/unit/flag_spec.rb",
76
- "spec/unit/ip_address_spec.rb",
77
- "spec/unit/json_spec.rb",
78
- "spec/unit/paranoid_boolean_spec.rb",
79
- "spec/unit/paranoid_datetime_spec.rb",
80
- "spec/unit/regexp_spec.rb",
81
- "spec/unit/uri_spec.rb",
82
- "spec/unit/uuid_spec.rb",
83
- "spec/unit/yaml_spec.rb",
84
- "tasks/ci.rake",
85
- "tasks/local_gemfile.rake",
86
- "tasks/metrics.rake",
87
- "tasks/spec.rake",
88
- "tasks/yard.rake",
89
- "tasks/yardstick.rake"
20
+ "Gemfile",
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "dm-types.gemspec",
26
+ "lib/dm-types.rb",
27
+ "lib/dm-types/bcrypt_hash.rb",
28
+ "lib/dm-types/comma_separated_list.rb",
29
+ "lib/dm-types/csv.rb",
30
+ "lib/dm-types/enum.rb",
31
+ "lib/dm-types/epoch_time.rb",
32
+ "lib/dm-types/file_path.rb",
33
+ "lib/dm-types/flag.rb",
34
+ "lib/dm-types/ip_address.rb",
35
+ "lib/dm-types/json.rb",
36
+ "lib/dm-types/paranoid/base.rb",
37
+ "lib/dm-types/paranoid_boolean.rb",
38
+ "lib/dm-types/paranoid_datetime.rb",
39
+ "lib/dm-types/regexp.rb",
40
+ "lib/dm-types/slug.rb",
41
+ "lib/dm-types/support/flags.rb",
42
+ "lib/dm-types/uri.rb",
43
+ "lib/dm-types/uuid.rb",
44
+ "lib/dm-types/yaml.rb",
45
+ "spec/fixtures/article.rb",
46
+ "spec/fixtures/bookmark.rb",
47
+ "spec/fixtures/invention.rb",
48
+ "spec/fixtures/network_node.rb",
49
+ "spec/fixtures/person.rb",
50
+ "spec/fixtures/software_package.rb",
51
+ "spec/fixtures/ticket.rb",
52
+ "spec/fixtures/tshirt.rb",
53
+ "spec/integration/bcrypt_hash_spec.rb",
54
+ "spec/integration/comma_separated_list_spec.rb",
55
+ "spec/integration/enum_spec.rb",
56
+ "spec/integration/file_path_spec.rb",
57
+ "spec/integration/flag_spec.rb",
58
+ "spec/integration/ip_address_spec.rb",
59
+ "spec/integration/json_spec.rb",
60
+ "spec/integration/slug_spec.rb",
61
+ "spec/integration/uri_spec.rb",
62
+ "spec/integration/uuid_spec.rb",
63
+ "spec/integration/yaml_spec.rb",
64
+ "spec/rcov.opts",
65
+ "spec/shared/flags_shared_spec.rb",
66
+ "spec/shared/identity_function_group.rb",
67
+ "spec/spec.opts",
68
+ "spec/spec_helper.rb",
69
+ "spec/unit/bcrypt_hash_spec.rb",
70
+ "spec/unit/csv_spec.rb",
71
+ "spec/unit/enum_spec.rb",
72
+ "spec/unit/epoch_time_spec.rb",
73
+ "spec/unit/file_path_spec.rb",
74
+ "spec/unit/flag_spec.rb",
75
+ "spec/unit/ip_address_spec.rb",
76
+ "spec/unit/json_spec.rb",
77
+ "spec/unit/paranoid_boolean_spec.rb",
78
+ "spec/unit/paranoid_datetime_spec.rb",
79
+ "spec/unit/regexp_spec.rb",
80
+ "spec/unit/uri_spec.rb",
81
+ "spec/unit/uuid_spec.rb",
82
+ "spec/unit/yaml_spec.rb",
83
+ "tasks/spec.rake",
84
+ "tasks/yard.rake",
85
+ "tasks/yardstick.rake"
90
86
  ]
91
- s.has_rdoc = %q{yard}
92
87
  s.homepage = %q{http://github.com/datamapper/dm-types}
93
- s.rdoc_options = ["--charset=UTF-8"]
94
88
  s.require_paths = ["lib"]
95
89
  s.rubyforge_project = %q{datamapper}
96
- s.rubygems_version = %q{1.3.7}
90
+ s.rubygems_version = %q{1.5.2}
97
91
  s.summary = %q{DataMapper plugin providing extra data types}
98
92
  s.test_files = [
99
93
  "spec/fixtures/article.rb",
100
- "spec/fixtures/bookmark.rb",
101
- "spec/fixtures/invention.rb",
102
- "spec/fixtures/network_node.rb",
103
- "spec/fixtures/person.rb",
104
- "spec/fixtures/software_package.rb",
105
- "spec/fixtures/ticket.rb",
106
- "spec/fixtures/tshirt.rb",
107
- "spec/integration/bcrypt_hash_spec.rb",
108
- "spec/integration/comma_separated_list_spec.rb",
109
- "spec/integration/enum_spec.rb",
110
- "spec/integration/file_path_spec.rb",
111
- "spec/integration/flag_spec.rb",
112
- "spec/integration/ip_address_spec.rb",
113
- "spec/integration/json_spec.rb",
114
- "spec/integration/slug_spec.rb",
115
- "spec/integration/uri_spec.rb",
116
- "spec/integration/uuid_spec.rb",
117
- "spec/integration/yaml_spec.rb",
118
- "spec/shared/flags_shared_spec.rb",
119
- "spec/shared/identity_function_group.rb",
120
- "spec/spec_helper.rb",
121
- "spec/unit/bcrypt_hash_spec.rb",
122
- "spec/unit/csv_spec.rb",
123
- "spec/unit/enum_spec.rb",
124
- "spec/unit/epoch_time_spec.rb",
125
- "spec/unit/file_path_spec.rb",
126
- "spec/unit/flag_spec.rb",
127
- "spec/unit/ip_address_spec.rb",
128
- "spec/unit/json_spec.rb",
129
- "spec/unit/paranoid_boolean_spec.rb",
130
- "spec/unit/paranoid_datetime_spec.rb",
131
- "spec/unit/regexp_spec.rb",
132
- "spec/unit/uri_spec.rb",
133
- "spec/unit/uuid_spec.rb",
134
- "spec/unit/yaml_spec.rb"
94
+ "spec/fixtures/bookmark.rb",
95
+ "spec/fixtures/invention.rb",
96
+ "spec/fixtures/network_node.rb",
97
+ "spec/fixtures/person.rb",
98
+ "spec/fixtures/software_package.rb",
99
+ "spec/fixtures/ticket.rb",
100
+ "spec/fixtures/tshirt.rb",
101
+ "spec/integration/bcrypt_hash_spec.rb",
102
+ "spec/integration/comma_separated_list_spec.rb",
103
+ "spec/integration/enum_spec.rb",
104
+ "spec/integration/file_path_spec.rb",
105
+ "spec/integration/flag_spec.rb",
106
+ "spec/integration/ip_address_spec.rb",
107
+ "spec/integration/json_spec.rb",
108
+ "spec/integration/slug_spec.rb",
109
+ "spec/integration/uri_spec.rb",
110
+ "spec/integration/uuid_spec.rb",
111
+ "spec/integration/yaml_spec.rb",
112
+ "spec/shared/flags_shared_spec.rb",
113
+ "spec/shared/identity_function_group.rb",
114
+ "spec/spec_helper.rb",
115
+ "spec/unit/bcrypt_hash_spec.rb",
116
+ "spec/unit/csv_spec.rb",
117
+ "spec/unit/enum_spec.rb",
118
+ "spec/unit/epoch_time_spec.rb",
119
+ "spec/unit/file_path_spec.rb",
120
+ "spec/unit/flag_spec.rb",
121
+ "spec/unit/ip_address_spec.rb",
122
+ "spec/unit/json_spec.rb",
123
+ "spec/unit/paranoid_boolean_spec.rb",
124
+ "spec/unit/paranoid_datetime_spec.rb",
125
+ "spec/unit/regexp_spec.rb",
126
+ "spec/unit/uri_spec.rb",
127
+ "spec/unit/uuid_spec.rb",
128
+ "spec/unit/yaml_spec.rb"
135
129
  ]
136
130
 
137
131
  if s.respond_to? :specification_version then
138
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
139
132
  s.specification_version = 3
140
133
 
141
134
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
142
- s.add_runtime_dependency(%q<dm-core>, ["~> 1.0.2"])
135
+ s.add_runtime_dependency(%q<activesupport>, ["~> 3.0.4"])
136
+ s.add_runtime_dependency(%q<i18n>, ["~> 0.5.0"])
137
+ s.add_runtime_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
138
+ s.add_runtime_dependency(%q<dm-core>, ["~> 1.1.0.rc1"])
143
139
  s.add_runtime_dependency(%q<fastercsv>, ["~> 1.5.3"])
144
- s.add_runtime_dependency(%q<json_pure>, ["~> 1.4"])
145
- s.add_runtime_dependency(%q<uuidtools>, ["~> 2.1.1"])
140
+ s.add_runtime_dependency(%q<json>, ["~> 1.5.1"])
146
141
  s.add_runtime_dependency(%q<stringex>, ["~> 1.1.0"])
147
- s.add_development_dependency(%q<rspec>, ["~> 1.3"])
148
- s.add_development_dependency(%q<dm-validations>, ["~> 1.0.2"])
142
+ s.add_runtime_dependency(%q<uuidtools>, ["~> 2.1.1"])
143
+ s.add_development_dependency(%q<dm-validations>, ["~> 1.1.0.rc1"])
144
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
145
+ s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
146
+ s.add_development_dependency(%q<rspec>, ["~> 1.3.1"])
149
147
  else
150
- s.add_dependency(%q<dm-core>, ["~> 1.0.2"])
148
+ s.add_dependency(%q<activesupport>, ["~> 3.0.4"])
149
+ s.add_dependency(%q<i18n>, ["~> 0.5.0"])
150
+ s.add_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
151
+ s.add_dependency(%q<dm-core>, ["~> 1.1.0.rc1"])
151
152
  s.add_dependency(%q<fastercsv>, ["~> 1.5.3"])
152
- s.add_dependency(%q<json_pure>, ["~> 1.4"])
153
- s.add_dependency(%q<uuidtools>, ["~> 2.1.1"])
153
+ s.add_dependency(%q<json>, ["~> 1.5.1"])
154
154
  s.add_dependency(%q<stringex>, ["~> 1.1.0"])
155
- s.add_dependency(%q<rspec>, ["~> 1.3"])
156
- s.add_dependency(%q<dm-validations>, ["~> 1.0.2"])
155
+ s.add_dependency(%q<uuidtools>, ["~> 2.1.1"])
156
+ s.add_dependency(%q<dm-validations>, ["~> 1.1.0.rc1"])
157
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
158
+ s.add_dependency(%q<rake>, ["~> 0.8.7"])
159
+ s.add_dependency(%q<rspec>, ["~> 1.3.1"])
157
160
  end
158
161
  else
159
- s.add_dependency(%q<dm-core>, ["~> 1.0.2"])
162
+ s.add_dependency(%q<activesupport>, ["~> 3.0.4"])
163
+ s.add_dependency(%q<i18n>, ["~> 0.5.0"])
164
+ s.add_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
165
+ s.add_dependency(%q<dm-core>, ["~> 1.1.0.rc1"])
160
166
  s.add_dependency(%q<fastercsv>, ["~> 1.5.3"])
161
- s.add_dependency(%q<json_pure>, ["~> 1.4"])
162
- s.add_dependency(%q<uuidtools>, ["~> 2.1.1"])
167
+ s.add_dependency(%q<json>, ["~> 1.5.1"])
163
168
  s.add_dependency(%q<stringex>, ["~> 1.1.0"])
164
- s.add_dependency(%q<rspec>, ["~> 1.3"])
165
- s.add_dependency(%q<dm-validations>, ["~> 1.0.2"])
169
+ s.add_dependency(%q<uuidtools>, ["~> 2.1.1"])
170
+ s.add_dependency(%q<dm-validations>, ["~> 1.1.0.rc1"])
171
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
172
+ s.add_dependency(%q<rake>, ["~> 0.8.7"])
173
+ s.add_dependency(%q<rspec>, ["~> 1.3.1"])
166
174
  end
167
175
  end
168
176
 
@@ -32,8 +32,3 @@ module DataMapper
32
32
  end # class BCryptHash
33
33
  end # class Property
34
34
  end # module DataMapper
35
-
36
- # The Bcrypt::Password#hash method returns a String and not an Integer,
37
- # which is required by any ruby class that uses a Hash underneath. Removing
38
- # this method does not cause any spec failures in Bcrypt::Password
39
- BCrypt::Password.class_eval { remove_method :hash }
data/lib/dm-types/enum.rb CHANGED
@@ -6,7 +6,7 @@ module DataMapper
6
6
  class Enum < Integer
7
7
  include Flags
8
8
 
9
- def initialize(model, name, options = {}, type = nil)
9
+ def initialize(model, name, options = {})
10
10
  super
11
11
 
12
12
  @flag_map = {}
data/lib/dm-types/flag.rb CHANGED
@@ -6,7 +6,7 @@ module DataMapper
6
6
  class Flag < Integer
7
7
  include Flags
8
8
 
9
- def initialize(model, name, options = {}, type = nil)
9
+ def initialize(model, name, options = {})
10
10
  super
11
11
 
12
12
  @flag_map = {}
@@ -35,7 +35,7 @@ module DataMapper
35
35
 
36
36
  def dump(value)
37
37
  return if value.nil?
38
- flags = Array(value).map { |flag| flag.to_sym }.flatten
38
+ flags = Array(value).map { |flag| flag.to_sym }.flatten.uniq
39
39
  flag_map.invert.values_at(*flags).compact.inject(0) { |sum, i| sum += 1 << i }
40
40
  end
41
41
 
data/lib/dm-types/json.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'dm-core'
2
- require 'json/pure'
2
+ require 'json' unless defined? JSON
3
3
 
4
4
  module DataMapper
5
5
  class Property
@@ -2,8 +2,18 @@ module DataMapper
2
2
  module Types
3
3
  module Paranoid
4
4
  module Base
5
+ extend Chainable
6
+
5
7
  def self.included(model)
6
8
  model.extend ClassMethods
9
+ model.instance_variable_set(:@paranoid_properties, {})
10
+ end
11
+
12
+ chainable do
13
+ def inherited(model)
14
+ model.instance_variable_set(:@paranoid_properties, @paranoid_properties.dup)
15
+ super
16
+ end
7
17
  end
8
18
 
9
19
  def paranoid_destroy
@@ -32,6 +42,16 @@ module DataMapper
32
42
  def with_deleted
33
43
  with_exclusive_scope({}) { block_given? ? yield : all }
34
44
  end
45
+
46
+ # @api private
47
+ def paranoid_properties
48
+ @paranoid_properties
49
+ end
50
+
51
+ # @api private
52
+ def set_paranoid_property(name, &block)
53
+ paranoid_properties[name] = block
54
+ end
35
55
  end # module ClassMethods
36
56
  end # module Paranoid
37
57
  end # module Types
@@ -1,12 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- module IPAddressMatchers
4
- def run_ipv6
5
- simple_matcher('run IPv6') { |model| model.runs_ipv6? }
3
+ Spec::Matchers.define :run_ipv4 do |model|
4
+ match do |model|
5
+ model.runs_ipv4?
6
6
  end
7
+ end
7
8
 
8
- def run_ipv4
9
- simple_matcher('run IPv4') { |model| model.runs_ipv4? }
9
+ Spec::Matchers.define :run_ipv6 do |model|
10
+ match do |model|
11
+ model.runs_ipv6?
10
12
  end
11
13
  end
12
14
 
@@ -24,8 +26,6 @@ try_spec do
24
26
  )
25
27
  end
26
28
 
27
- include IPAddressMatchers
28
-
29
29
  describe 'with IP address fe80::ab8:e8ff:fed7:f8c9' do
30
30
  before :all do
31
31
  @resource.ip_address = 'fe80::ab8:e8ff:fed7:f8c9'
data/spec/spec_helper.rb CHANGED
@@ -5,7 +5,7 @@ require 'dm-types'
5
5
  require 'dm-migrations'
6
6
  require 'dm-validations'
7
7
 
8
- Dir["#{Pathname(__FILE__).dirname.expand_path}/shared/*"].each { |file| require file }
8
+ Dir["#{Pathname(__FILE__).dirname.expand_path}/shared/*.rb"].each { |file| require file }
9
9
 
10
10
  DataMapper::Spec.setup
11
11
 
@@ -20,8 +20,6 @@ DEPENDENCIES = {
20
20
  def try_spec
21
21
  begin
22
22
  yield
23
- rescue NameError
24
- # do nothing
25
23
  rescue LoadError => error
26
24
  raise error unless lib = error.message.match(/\Ano such file to load -- (.+)\z/)[1]
27
25
 
@@ -35,7 +35,7 @@ try_spec do
35
35
  end
36
36
 
37
37
  it 'returns a string that is 60 characters long' do
38
- @result.should have(60).characters
38
+ @result.size.should == 60
39
39
  end
40
40
  end
41
41
 
@@ -63,6 +63,16 @@ try_spec do
63
63
  @result.should == 0
64
64
  end
65
65
  end
66
+
67
+ describe 'when argument contains duplicate flags' do
68
+ before :all do
69
+ @result = @flag.dump([ :second, :fourth, :second ])
70
+ end
71
+
72
+ it 'behaves the same as if there were no duplicates' do
73
+ @result.should == @flag.dump([ :second, :fourth ])
74
+ end
75
+ end
66
76
  end
67
77
 
68
78
  describe '.load' do
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
1
+ require 'spec_helper'
2
2
 
3
3
  describe DataMapper::Property::ParanoidBoolean do
4
4
  before :all do
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
1
+ require 'spec_helper'
2
2
 
3
3
  describe DataMapper::Property::ParanoidDateTime do
4
4
  before :all do
data/tasks/spec.rake CHANGED
@@ -35,7 +35,4 @@ rescue LoadError
35
35
  end
36
36
  end
37
37
 
38
- task :spec => :check_dependencies
39
- task :rcov => :check_dependencies
40
-
41
38
  task :default => :spec
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-types
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 1
7
- - 0
8
- - 2
9
- version: 1.0.2
4
+ prerelease: 6
5
+ version: 1.1.0.rc1
10
6
  platform: ruby
11
7
  authors:
12
8
  - Dan Kubb
@@ -14,112 +10,141 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-09-07 00:00:00 -07:00
13
+ date: 2011-02-28 00:00:00 -08:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
21
- name: dm-core
22
- prerelease: false
17
+ name: activesupport
23
18
  requirement: &id001 !ruby/object:Gem::Requirement
24
19
  none: false
25
20
  requirements:
26
21
  - - ~>
27
22
  - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 0
31
- - 2
32
- version: 1.0.2
23
+ version: 3.0.4
33
24
  type: :runtime
25
+ prerelease: false
34
26
  version_requirements: *id001
35
27
  - !ruby/object:Gem::Dependency
36
- name: fastercsv
37
- prerelease: false
28
+ name: i18n
38
29
  requirement: &id002 !ruby/object:Gem::Requirement
39
30
  none: false
40
31
  requirements:
41
32
  - - ~>
42
33
  - !ruby/object:Gem::Version
43
- segments:
44
- - 1
45
- - 5
46
- - 3
47
- version: 1.5.3
34
+ version: 0.5.0
48
35
  type: :runtime
36
+ prerelease: false
49
37
  version_requirements: *id002
50
38
  - !ruby/object:Gem::Dependency
51
- name: json_pure
52
- prerelease: false
39
+ name: bcrypt-ruby
53
40
  requirement: &id003 !ruby/object:Gem::Requirement
54
41
  none: false
55
42
  requirements:
56
43
  - - ~>
57
44
  - !ruby/object:Gem::Version
58
- segments:
59
- - 1
60
- - 4
61
- version: "1.4"
45
+ version: 2.1.4
62
46
  type: :runtime
47
+ prerelease: false
63
48
  version_requirements: *id003
64
49
  - !ruby/object:Gem::Dependency
65
- name: uuidtools
66
- prerelease: false
50
+ name: dm-core
67
51
  requirement: &id004 !ruby/object:Gem::Requirement
68
52
  none: false
69
53
  requirements:
70
54
  - - ~>
71
55
  - !ruby/object:Gem::Version
72
- segments:
73
- - 2
74
- - 1
75
- - 1
76
- version: 2.1.1
56
+ version: 1.1.0.rc1
77
57
  type: :runtime
58
+ prerelease: false
78
59
  version_requirements: *id004
79
60
  - !ruby/object:Gem::Dependency
80
- name: stringex
81
- prerelease: false
61
+ name: fastercsv
82
62
  requirement: &id005 !ruby/object:Gem::Requirement
83
63
  none: false
84
64
  requirements:
85
65
  - - ~>
86
66
  - !ruby/object:Gem::Version
87
- segments:
88
- - 1
89
- - 1
90
- - 0
91
- version: 1.1.0
67
+ version: 1.5.3
92
68
  type: :runtime
69
+ prerelease: false
93
70
  version_requirements: *id005
94
71
  - !ruby/object:Gem::Dependency
95
- name: rspec
96
- prerelease: false
72
+ name: json
97
73
  requirement: &id006 !ruby/object:Gem::Requirement
98
74
  none: false
99
75
  requirements:
100
76
  - - ~>
101
77
  - !ruby/object:Gem::Version
102
- segments:
103
- - 1
104
- - 3
105
- version: "1.3"
106
- type: :development
78
+ version: 1.5.1
79
+ type: :runtime
80
+ prerelease: false
107
81
  version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: stringex
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 1.1.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: uuidtools
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 2.1.1
101
+ type: :runtime
102
+ prerelease: false
103
+ version_requirements: *id008
108
104
  - !ruby/object:Gem::Dependency
109
105
  name: dm-validations
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: 1.1.0.rc1
112
+ type: :development
110
113
  prerelease: false
111
- requirement: &id007 !ruby/object:Gem::Requirement
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
116
+ name: jeweler
117
+ requirement: &id010 !ruby/object:Gem::Requirement
112
118
  none: false
113
119
  requirements:
114
120
  - - ~>
115
121
  - !ruby/object:Gem::Version
116
- segments:
117
- - 1
118
- - 0
119
- - 2
120
- version: 1.0.2
122
+ version: 1.5.2
121
123
  type: :development
122
- version_requirements: *id007
124
+ prerelease: false
125
+ version_requirements: *id010
126
+ - !ruby/object:Gem::Dependency
127
+ name: rake
128
+ requirement: &id011 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 0.8.7
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: *id011
137
+ - !ruby/object:Gem::Dependency
138
+ name: rspec
139
+ requirement: &id012 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ~>
143
+ - !ruby/object:Gem::Version
144
+ version: 1.3.1
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: *id012
123
148
  description: DataMapper plugin providing extra data types
124
149
  email: dan.kubb [a] gmail [d] com
125
150
  executables: []
@@ -130,7 +155,6 @@ extra_rdoc_files:
130
155
  - LICENSE
131
156
  - README.rdoc
132
157
  files:
133
- - .gitignore
134
158
  - Gemfile
135
159
  - LICENSE
136
160
  - README.rdoc
@@ -194,19 +218,16 @@ files:
194
218
  - spec/unit/uri_spec.rb
195
219
  - spec/unit/uuid_spec.rb
196
220
  - spec/unit/yaml_spec.rb
197
- - tasks/ci.rake
198
- - tasks/local_gemfile.rake
199
- - tasks/metrics.rake
200
221
  - tasks/spec.rake
201
222
  - tasks/yard.rake
202
223
  - tasks/yardstick.rake
203
- has_rdoc: yard
224
+ has_rdoc: true
204
225
  homepage: http://github.com/datamapper/dm-types
205
226
  licenses: []
206
227
 
207
228
  post_install_message:
208
- rdoc_options:
209
- - --charset=UTF-8
229
+ rdoc_options: []
230
+
210
231
  require_paths:
211
232
  - lib
212
233
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -214,21 +235,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
214
235
  requirements:
215
236
  - - ">="
216
237
  - !ruby/object:Gem::Version
217
- segments:
218
- - 0
219
238
  version: "0"
220
239
  required_rubygems_version: !ruby/object:Gem::Requirement
221
240
  none: false
222
241
  requirements:
223
- - - ">="
242
+ - - ">"
224
243
  - !ruby/object:Gem::Version
225
- segments:
226
- - 0
227
- version: "0"
244
+ version: 1.3.1
228
245
  requirements: []
229
246
 
230
247
  rubyforge_project: datamapper
231
- rubygems_version: 1.3.7
248
+ rubygems_version: 1.5.2
232
249
  signing_key:
233
250
  specification_version: 3
234
251
  summary: DataMapper plugin providing extra data types
data/.gitignore DELETED
@@ -1,37 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## Rubinius
17
- *.rbc
18
-
19
- ## PROJECT::GENERAL
20
- *.gem
21
- coverage
22
- rdoc
23
- pkg
24
- tmp
25
- doc
26
- log
27
- .yardoc
28
- measurements
29
-
30
- ## BUNDLER
31
- .bundle
32
- Gemfile.local
33
- Gemfile.lock
34
- Gemfile.local.lock
35
-
36
- ## PROJECT::SPECIFIC
37
- spec/db/
data/tasks/ci.rake DELETED
@@ -1 +0,0 @@
1
- task :ci => [ :verify_measurements, 'metrics:all' ]
@@ -1,16 +0,0 @@
1
- desc "Support bundling from local source code (allows BUNDLE_GEMFILE=Gemfile.local bundle foo)"
2
- task :local_gemfile do |t|
3
-
4
- root = Pathname(__FILE__).dirname.parent
5
- datamapper = root.parent
6
-
7
- root.join('Gemfile.local').open('w') do |f|
8
- root.join('Gemfile').open.each do |line|
9
- line.sub!(/DATAMAPPER = 'git:\/\/github.com\/datamapper'/, "DATAMAPPER = '#{datamapper}'")
10
- line.sub!(/:git => \"#\{DATAMAPPER\}\/(.+?)(?:\.git)?\"/, ':path => "#{DATAMAPPER}/\1"')
11
- line.sub!(/do_options\[:git\] = \"#\{DATAMAPPER\}\/(.+?)(?:\.git)?\"/, 'do_options[:path] = "#{DATAMAPPER}/\1"')
12
- f.puts line
13
- end
14
- end
15
-
16
- end
data/tasks/metrics.rake DELETED
@@ -1,36 +0,0 @@
1
- begin
2
- require 'metric_fu'
3
- rescue LoadError
4
- namespace :metrics do
5
- task :all do
6
- abort 'metric_fu is not available. In order to run metrics:all, you must: gem install metric_fu'
7
- end
8
- end
9
- end
10
-
11
- begin
12
- require 'reek/adapters/rake_task'
13
-
14
- Reek::RakeTask.new do |t|
15
- t.fail_on_error = true
16
- t.verbose = false
17
- t.source_files = 'lib/**/*.rb'
18
- end
19
- rescue LoadError
20
- task :reek do
21
- abort 'Reek is not available. In order to run reek, you must: gem install reek'
22
- end
23
- end
24
-
25
- begin
26
- require 'roodi'
27
- require 'roodi_task'
28
-
29
- RoodiTask.new do |t|
30
- t.verbose = false
31
- end
32
- rescue LoadError
33
- task :roodi do
34
- abort 'Roodi is not available. In order to run roodi, you must: gem install roodi'
35
- end
36
- end