dm-is-predefined 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,18 @@
1
+ ### 0.4.0 / 2011-07-28
2
+
3
+ * Added {DataMapper::Is::Predefined::MigrationMethods}.
4
+ * Overrides `auto_migrate!` and `auto_upgrade!` to auto-predefine
5
+ the resources after auto-migrations.
6
+ * Added {DataMapper::Is::Predefined::ClassMethods#predefine!}.
7
+ * Added {DataMapper::Is::Predefined::ClassMethods#predefined}.
8
+ * Added {DataMapper::Is::Predefined::ClassMethods#predefined?}.
9
+ * Added {DataMapper::Is::Predefined::ClassMethods#first_or_predefined}.
10
+ * Made {DataMapper::Is::Predefined::ClassMethods#predefined_attributes} public.
11
+ * Deprecated {DataMapper::Is::Predefined::ClassMethods#predefined_resource_with}
12
+ in favor of {DataMapper::Is::Predefined::ClassMethods#first_or_predefined}.
13
+ * Deprecated {DataMapper::Is::Predefined::ClassMethods#predefined_names}
14
+ in favor of {DataMapper::Is::Predefined::ClassMethods#predefined}.
15
+
1
16
  ### 0.3.1 / 2011-02-28
2
17
 
3
18
  * Require dm-core ~> 1.0.
data/Gemfile CHANGED
@@ -99,7 +99,7 @@ end
99
99
  gem 'dm-core', DM_VERSION, :git => "#{DATAMAPPER}/dm-core.git"
100
100
 
101
101
  group :development do
102
- gem 'rake', '~> 0.8.7'
102
+ gem 'rake', '~> 0.8'
103
103
 
104
104
  gem 'ore-tasks', '~> 0.4'
105
105
  gem 'rspec', '~> 2.4'
data/README.md CHANGED
@@ -34,25 +34,29 @@ A DataMapper plugin for adding predefined resources to Models.
34
34
 
35
35
  end
36
36
 
37
+
38
+ License.predefined
39
+ # => [:gpl2, :mit]
40
+
41
+ License.predefined?(:gpl2)
42
+ # => true
43
+
37
44
  Licence.gpl2
38
45
  # => #<Licence: id: 1, name: "GPL-2", url: "http://www.gnu.org/copyleft/gpl.html">
39
-
46
+
40
47
  Licence.predefined_resource(:mit)
41
48
  # => #<Licence: id: 2, name: "MIT">
42
49
 
43
- License.predefined_resource_with(:name => 'GPL-2')
50
+ License.first_or_predefined(:name => 'GPL-2')
44
51
  # => #<License: id: 1, name: "GPL-2", url: "http://www.gnu.org/copyleft/gpl.html">
45
52
 
46
- License.predefined_names
47
- # => [:gpl2, :mit]
48
-
49
53
  ## Requirements
50
54
 
51
55
  * [dm-core](http://github.com/datamapper/dm-core/) ~> 1.0
52
56
 
53
57
  ## Install
54
58
 
55
- $ sudo gem install dm-is-predefined
59
+ $ gem install dm-is-predefined
56
60
 
57
61
  ## License
58
62
 
data/Rakefile CHANGED
@@ -3,16 +3,16 @@ require 'rubygems'
3
3
  begin
4
4
  require 'bundler'
5
5
  rescue LoadError => e
6
- STDERR.puts e.message
7
- STDERR.puts "Run `gem install bundler` to install Bundler."
6
+ warn e.message
7
+ warn "Run `gem install bundler` to install Bundler."
8
8
  exit e.status_code
9
9
  end
10
10
 
11
11
  begin
12
12
  Bundler.setup(:development)
13
13
  rescue Bundler::BundlerError => e
14
- STDERR.puts e.message
15
- STDERR.puts "Run `bundle install` to install missing gems"
14
+ warn e.message
15
+ warn "Run `bundle install` to install missing gems"
16
16
  exit e.status_code
17
17
  end
18
18
 
@@ -1,15 +1,127 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- begin
4
- Ore::Specification.new do |gemspec|
5
- # custom logic here
6
- end
7
- rescue NameError
8
- begin
9
- require 'ore/specification'
10
- retry
11
- rescue LoadError
12
- STDERR.puts "The '#{__FILE__}' file requires Ore."
13
- STDERR.puts "Run `gem install ore-core` to install Ore."
1
+ # encoding: utf-8
2
+
3
+ require 'yaml'
4
+
5
+ Gem::Specification.new do |gemspec|
6
+ files = if File.directory?('.git')
7
+ `git ls-files`.split($/)
8
+ elsif File.directory?('.hg')
9
+ `hg manifest`.split($/)
10
+ elsif File.directory?('.svn')
11
+ `svn ls -R`.split($/).select { |path| File.file?(path) }
12
+ else
13
+ Dir['{**/}{.*,*}'].select { |path| File.file?(path) }
14
+ end
15
+
16
+ filter_files = lambda { |paths|
17
+ case paths
18
+ when Array
19
+ (files & paths)
20
+ when String
21
+ (files & Dir[paths])
22
+ end
23
+ }
24
+
25
+ version = {
26
+ :file => 'lib/dm-is-predefined/version.rb',
27
+ :constant => 'DataMapper::Is::Predefined::VERSION'
28
+ }
29
+
30
+ defaults = {
31
+ 'name' => File.basename(File.dirname(__FILE__)),
32
+ 'files' => files,
33
+ 'executables' => filter_files['bin/*'].map { |path| File.basename(path) },
34
+ 'test_files' => filter_files['{test/{**/}*_test.rb,spec/{**/}*_spec.rb}'],
35
+ 'extra_doc_files' => filter_files['*.{txt,rdoc,md,markdown,tt,textile}'],
36
+ }
37
+
38
+ metadata = defaults.merge(YAML.load_file('gemspec.yml'))
39
+
40
+ gemspec.name = metadata.fetch('name',defaults[:name])
41
+ gemspec.version = if metadata['version']
42
+ metadata['version']
43
+ elsif File.file?(version[:file])
44
+ require File.join('.',version[:file])
45
+ eval(version[:constant])
46
+ end
47
+
48
+ gemspec.summary = metadata.fetch('summary',metadata['description'])
49
+ gemspec.description = metadata.fetch('description',metadata['summary'])
50
+
51
+ case metadata['license']
52
+ when Array
53
+ gemspec.licenses = metadata['license']
54
+ when String
55
+ gemspec.license = metadata['license']
56
+ end
57
+
58
+ case metadata['authors']
59
+ when Array
60
+ gemspec.authors = metadata['authors']
61
+ when String
62
+ gemspec.author = metadata['authors']
63
+ end
64
+
65
+ gemspec.email = metadata['email']
66
+ gemspec.homepage = metadata['homepage']
67
+
68
+ case metadata['require_paths']
69
+ when Array
70
+ gemspec.require_paths = metadata['require_paths']
71
+ when String
72
+ gemspec.require_path = metadata['require_paths']
73
+ end
74
+
75
+ gemspec.files = filter_files[metadata['files']]
76
+
77
+ gemspec.executables = metadata['executables']
78
+ gemspec.extensions = metadata['extensions']
79
+
80
+ if Gem::VERSION < '1.7.'
81
+ gemspec.default_executable = gemspec.executables.first
82
+ end
83
+
84
+ gemspec.test_files = filter_files[metadata['test_files']]
85
+
86
+ unless gemspec.files.include?('.document')
87
+ gemspec.extra_rdoc_files = metadata['extra_doc_files']
88
+ end
89
+
90
+ gemspec.post_install_message = metadata['post_install_message']
91
+ gemspec.requirements = metadata['requirements']
92
+
93
+ if gemspec.respond_to?(:required_ruby_version=)
94
+ gemspec.required_ruby_version = metadata['required_ruby_version']
95
+ end
96
+
97
+ if gemspec.respond_to?(:required_rubygems_version=)
98
+ gemspec.required_rubygems_version = metadata['required_ruby_version']
99
+ end
100
+
101
+ parse_versions = lambda { |versions|
102
+ case versions
103
+ when Array
104
+ versions.map { |v| v.to_s }
105
+ when String
106
+ versions.split(/,\s*/)
107
+ end
108
+ }
109
+
110
+ if metadata['dependencies']
111
+ metadata['dependencies'].each do |name,versions|
112
+ gemspec.add_dependency(name,parse_versions[versions])
113
+ end
114
+ end
115
+
116
+ if metadata['runtime_dependencies']
117
+ metadata['runtime_dependencies'].each do |name,versions|
118
+ gemspec.add_runtime_dependency(name,parse_versions[versions])
119
+ end
120
+ end
121
+
122
+ if metadata['development_dependencies']
123
+ metadata['development_dependencies'].each do |name,versions|
124
+ gemspec.add_development_dependency(name,parse_versions[versions])
125
+ end
14
126
  end
15
127
  end
@@ -1,5 +1,5 @@
1
1
  name: dm-is-predefined
2
- version: 0.3.1
2
+ version: 0.4.0
3
3
  summary: DataMapper plugin for adding predefined resources to models.
4
4
  description:
5
5
  A DataMapper plugin for adding predefined resources to Models.
@@ -15,4 +15,4 @@ dependencies:
15
15
 
16
16
  development_dependencies:
17
17
  bundler: ~> 1.0.0
18
- yard: ~> 0.6.0
18
+ yard: ~> 0.7.0
@@ -4,94 +4,225 @@ module DataMapper
4
4
  module Is
5
5
  module Predefined
6
6
  #
7
- # Fired when your plugin gets included into Resource.
7
+ # Fired when your plugin gets included into a Model.
8
+ #
9
+ # @note
10
+ # If the model already includes `DataMapper::Migrations`, then
11
+ # {MigrationMethods} will be extended into the Model.
12
+ #
13
+ # @api private
8
14
  #
9
15
  def is_predefined
10
16
  extend DataMapper::Is::Predefined::ClassMethods
17
+
18
+ if defined?(DataMapper::Migrations) &&
19
+ included_modules.include?(DataMapper::Migrations)
20
+ extend MigrationMethods
21
+ end
22
+ end
23
+
24
+ #
25
+ # @since 0.4.0
26
+ #
27
+ module MigrationMethods
28
+ #
29
+ # Auto-migrates the model, then creates all predefined resources.
30
+ #
31
+ # @param [Symbol] repository_name
32
+ # The repository to perform the migrations within.
33
+ #
34
+ # @return [true]
35
+ #
36
+ # @api public
37
+ #
38
+ def auto_migrate!(repository_name=self.repository_name)
39
+ result = super(repository_name)
40
+
41
+ predefine!(repository_name)
42
+ return result
43
+ end
44
+
45
+ #
46
+ # Auto-upgrades the model, then creates any missing predefined
47
+ # resources.
48
+ #
49
+ # @param [Symbol] repository_name
50
+ # The repository to perform the upgrade within.
51
+ #
52
+ # @return [true]
53
+ #
54
+ # @api public
55
+ #
56
+ def auto_upgrade!(repository_name=self.repository_name)
57
+ result = super(repository_name)
58
+
59
+ predefine!(repository_name)
60
+ return result
61
+ end
11
62
  end
12
63
 
13
64
  module ClassMethods
65
+ #
66
+ # All pre-defined resources of the model.
67
+ #
68
+ # @return [Hash{Symbol => Hash}]
69
+ # The Hash of pre-defined resources and their attributes.
70
+ #
71
+ # @api semipublic
72
+ #
73
+ def predefined_attributes
74
+ @predefined_attributes ||= {}
75
+ end
76
+
14
77
  #
15
78
  # Returns the names of the predefined resources.
16
79
  #
17
80
  # @return [Array<Symbol>]
18
81
  # The names of the predefined resources.
19
82
  #
83
+ # @since 0.4.0
84
+ #
85
+ # @api public
86
+ #
87
+ def predefined
88
+ predefined_attributes.keys
89
+ end
90
+
91
+ #
92
+ # @see #predefined
93
+ #
94
+ # @deprecated Will be removed in 1.0.0.
95
+ #
20
96
  # @since 0.2.1
21
97
  #
22
98
  def predefined_names
23
- predefined_attributes.keys
99
+ predefined
24
100
  end
25
101
 
26
102
  #
27
- # Finds or auto-creates the pre-defined resource with the given name.
103
+ # Determines if a resource was predefined.
104
+ #
105
+ # @param [Symbol, String] name
106
+ # The name of the predefined resource to search for.
107
+ #
108
+ # @return [Boolean]
109
+ # Specifies whether the resource was predefined.
110
+ #
111
+ # @since 0.4.0
112
+ #
113
+ # @api public
114
+ #
115
+ def predefined?(name)
116
+ predefined_attributes.has_key?(name.to_sym)
117
+ end
118
+
119
+ #
120
+ # Finds or auto-creates the pre-defined resource with the given
121
+ # name.
28
122
  #
29
123
  # @param [Symbol, String] name
30
124
  # The name of the pre-defined resource.
31
125
  #
126
+ # @param [Hash{Symbol => Object}] extra_attributes
127
+ # Additional attributes to add to the predefined resource.
128
+ #
32
129
  # @return [DataMapper::Resource]
33
130
  # The pre-defined resource.
34
131
  #
35
132
  # @raise [UnknownResource]
36
- # Indicates that there are no predefined attributes for the resource
37
- # with the given name.
133
+ # Indicates that there are no predefined attributes for the
134
+ # resource with the given name.
38
135
  #
39
136
  # @since 0.2.1
40
137
  #
138
+ # @api public
139
+ #
41
140
  def predefined_resource(name)
42
141
  name = name.to_sym
43
- attributes = self.predefined_attributes[name]
44
142
 
45
- unless attributes
46
- raise(UnknownResource,"The resource '#{name}' was not predefined",caller)
143
+ unless predefined?(name)
144
+ raise(UnknownResource,"The resource '#{name}' was not predefined")
47
145
  end
48
146
 
49
- self.first_or_create(attributes)
147
+ return first_or_create(predefined_attributes[name])
50
148
  end
51
149
 
52
150
  #
53
151
  # Finds or auto-creates the predefined resource which shares the
54
152
  # given attributes.
55
153
  #
56
- # @param [Hash{Symbol => Object}] desired_attributes
154
+ # @param [Hash{Symbol => Object}] conditions
155
+ # Query conditions.
156
+ #
157
+ # @param [Hash{Symbol => Object}] attributes
57
158
  # The attribute names and values that the predefined resource
58
159
  # should shared.
59
160
  #
60
- # @return [DataMapper::Resource]
161
+ # @return [DataMapper::Resource, nil]
61
162
  # The predefined resource.
163
+ #
164
+ # @since 0.4.0
165
+ #
166
+ # @api public
167
+ #
168
+ def first_or_predefined(conditions={},attributes=conditions)
169
+ if (resource = first(conditions))
170
+ return resource
171
+ end
172
+
173
+ # if the resource wasn't found, search for matching
174
+ # predefined attributes
175
+ attributes = predefined_attributes.values.find do |attrs|
176
+ attrs.all? do |name,value|
177
+ attributes.has_key?(name) && (attributes[name] == value)
178
+ end
179
+ end
180
+
181
+ # create the resource using the predefined attributes
182
+ create(attributes) if attributes
183
+ end
184
+
62
185
  #
63
186
  # @raise [UnknownResource]
64
187
  # Could not find a predefined resource that shared all of the
65
188
  # desired attributes.
66
189
  #
190
+ # @deprecated
191
+ # Will be removed in 1.0.0. Use {#first_or_predefined} instead.
192
+ #
67
193
  # @since 0.2.1
68
194
  #
69
- def predefined_resource_with(desired_attributes={})
70
- self.predefined_attributes.each do |name,attributes|
71
- shares_attributes = desired_attributes.all? do |key,value|
72
- key = key.to_sym
73
-
74
- attributes.has_key?(key) && (attributes[key] == value)
75
- end
76
-
77
- return predefined_resource(name) if shares_attributes
195
+ # @api public
196
+ #
197
+ def predefined_resource_with(query={})
198
+ unless (resource = first_or_predefined(query))
199
+ # no pre-existing or predefined resource matching the query
200
+ raise(UnknownResource,"Could not find a predefined resource which shared the given attributes")
78
201
  end
79
202
 
80
- raise(UnknownResource,"Could not find a predefined resource which shared the given attributes",caller)
203
+ return resource
81
204
  end
82
205
 
83
- protected
84
-
85
206
  #
86
- # All pre-defined resources of the model.
207
+ # Creates the predefined resources.
87
208
  #
88
- # @return [Hash{Symbol => Hash}]
89
- # The Hash of pre-defined resources and their attributes.
209
+ # @param [Symbol] repository_name
210
+ # The repository to perform the upgrade within.
90
211
  #
91
- def predefined_attributes
92
- @predefined_attributes ||= {}
212
+ # @since 0.4.0
213
+ #
214
+ # @api public
215
+ #
216
+ def predefine!(repository_name=self.repository_name)
217
+ DataMapper.repository(repository_name) do
218
+ predefined_attributes.each_value do |attributes|
219
+ first_or_create(attributes)
220
+ end
221
+ end
93
222
  end
94
223
 
224
+ protected
225
+
95
226
  #
96
227
  # Defines a new pre-defined resource for the model.
97
228
  #
@@ -102,26 +233,29 @@ module DataMapper
102
233
  # The attributes for the pre-defined resource.
103
234
  #
104
235
  # @return [Hash]
105
- # The attributes that will be assigned to the pre-defined resource.
236
+ # The attributes that will be assigned to the pre-defined
237
+ # resource.
238
+ #
239
+ # @api public
106
240
  #
107
241
  def predefine(name,attributes={})
108
- name = name.to_s
242
+ name = name.to_sym
109
243
 
110
244
  if attributes.empty?
111
- raise(ArgumentError,"Cannot predefine a resource with no attributes",caller)
245
+ raise(ArgumentError,"Cannot predefine a resource with no attributes")
112
246
  end
113
247
 
114
- self.predefined_attributes[name.to_sym] = attributes
248
+ predefined_attributes[name] = attributes
115
249
 
116
250
  class_eval %{
117
251
  class << self
118
- define_method(#{name.dump}) do
119
- predefined_resource(#{name.dump})
252
+ define_method(#{name.inspect}) do
253
+ predefined_resource(#{name.inspect})
120
254
  end
121
255
  end
122
256
  }
123
257
 
124
- attributes
258
+ return attributes
125
259
  end
126
260
  end # ClassMethods
127
261
  end # Predefined
@@ -0,0 +1,19 @@
1
+ require 'dm-is-predefined'
2
+
3
+ class MigratedModel
4
+
5
+ include DataMapper::Resource
6
+ include DataMapper::Migrations
7
+
8
+ is :predefined
9
+
10
+ # Primary key of the test model
11
+ property :id, Serial
12
+
13
+ # Name property to test String values
14
+ property :name, String
15
+
16
+ predefine :test1, :name => 'test1'
17
+ predefine :test2, :name => 'test2'
18
+
19
+ end
@@ -1,17 +1,56 @@
1
1
  require 'spec_helper'
2
2
  require 'integration/models/test_model'
3
+ require 'integration/models/migrated_model'
3
4
 
4
5
  describe DataMapper::Is::Predefined do
5
6
  before(:all) do
6
7
  TestModel.auto_migrate!
7
8
  end
8
9
 
10
+ context "migrations" do
11
+ it "should extend MigrationMethods, if Migrations are included" do
12
+ TestModel.should_not be_kind_of(DataMapper::Is::Predefined::MigrationMethods)
13
+ MigratedModel.should be_kind_of(DataMapper::Is::Predefined::MigrationMethods)
14
+ end
15
+
16
+ it "should create all predefined resources after auto_migrate!" do
17
+ MigratedModel.auto_migrate!
18
+
19
+ resources = MigratedModel.all
20
+
21
+ resources[0].id.should == 1
22
+ resources[0].name.should == 'test1'
23
+
24
+ resources[1].id.should == 2
25
+ resources[1].name.should == 'test2'
26
+ end
27
+
28
+ it "should create missing predefined resources after auto_upgrade!" do
29
+ MigratedModel.first(:name => 'test2').destroy!
30
+
31
+ MigratedModel.property :extra, String
32
+ MigratedModel.auto_upgrade!
33
+
34
+ resources = MigratedModel.all
35
+
36
+ resources[0].id.should == 1
37
+ resources[0].name.should == 'test1'
38
+
39
+ resources[1].id.should == 3
40
+ resources[1].name.should == 'test2'
41
+ end
42
+ end
43
+
9
44
  it "should define the @predefined_attributes instance variable" do
10
45
  TestModel.should be_instance_variable_defined(:@predefined_attributes)
11
46
  end
12
47
 
13
48
  it "should provide the names of all predefined resources of a Model" do
14
- TestModel.predefined_names.should =~ [:test1, :test2]
49
+ TestModel.predefined.should =~ [:test1, :test2]
50
+ end
51
+
52
+ it "should determine if a predefined resource was defined" do
53
+ TestModel.should be_predefined(:test2)
15
54
  end
16
55
 
17
56
  it "should be able to define resources of a Model" do
@@ -56,34 +95,33 @@ describe DataMapper::Is::Predefined do
56
95
  end
57
96
  end
58
97
 
59
- describe "predefined_resource_with" do
98
+ describe "first_or_predefined" do
60
99
  it "should find resources based on attributes they share" do
61
- test2 = TestModel.predefined_resource_with(:name => 'test2', :number => 2)
100
+ test2 = TestModel.first_or_predefined(:name => 'test2', :number => 2)
62
101
 
63
102
  test2.name.should == 'test2'
64
103
  end
65
104
 
66
- it "should raise UnknownResource if no resource shares all attribute names" do
67
- lambda {
68
- TestModel.predefined_resource_with(:number => 1, :missing => 'yo')
69
- }.should raise_error(DataMapper::Is::Predefined::UnknownResource)
70
- end
105
+ it "should allow specifying different query and predefined attributes" do
106
+ test2 = TestModel.first_or_predefined(
107
+ {:name.like => '%test2%'},
108
+ {:name => 'test2', :number => 2}
109
+ )
71
110
 
72
- it "should raise UnknownResource if no resource shares any attribute names" do
73
- lambda {
74
- TestModel.predefined_resource_with(:missing => 1, :typo => 'yo')
75
- }.should raise_error(DataMapper::Is::Predefined::UnknownResource)
111
+ test2.name.should == 'test2'
76
112
  end
77
113
 
78
- it "should raise UnknownResource if no resource shares all attribute values" do
79
- lambda {
80
- TestModel.predefined_resource_with(:number => 2, :optional => 'yo')
81
- }.should raise_error(DataMapper::Is::Predefined::UnknownResource)
114
+ it "should return nil if no resource shares any attribute values" do
115
+ resource = TestModel.first_or_predefined(:number => 100, :optional => 'bla')
116
+
117
+ resource.should be_nil
82
118
  end
119
+ end
83
120
 
121
+ describe "predefined_resource_with" do
84
122
  it "should raise UnknownResource if no resource shares any attribute values" do
85
123
  lambda {
86
- TestModel.predefined_resource_with(:number => 3, :optional => 'bla')
124
+ TestModel.predefined_resource_with(:number => 100, :optional => 'bla')
87
125
  }.should raise_error(DataMapper::Is::Predefined::UnknownResource)
88
126
  end
89
127
  end
metadata CHANGED
@@ -1,63 +1,60 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: dm-is-predefined
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
4
5
  prerelease:
5
- version: 0.3.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Postmodern
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-02-28 00:00:00 -08:00
12
+ date: 2011-07-28 00:00:00.000000000 -07:00
14
13
  default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: dm-core
18
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &11760400 !ruby/object:Gem::Requirement
19
18
  none: false
20
- requirements:
19
+ requirements:
21
20
  - - ~>
22
- - !ruby/object:Gem::Version
23
- version: "1.0"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
24
23
  type: :runtime
25
24
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *11760400
26
+ - !ruby/object:Gem::Dependency
28
27
  name: bundler
29
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &11758740 !ruby/object:Gem::Requirement
30
29
  none: false
31
- requirements:
30
+ requirements:
32
31
  - - ~>
33
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
34
33
  version: 1.0.0
35
34
  type: :development
36
35
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *11758740
37
+ - !ruby/object:Gem::Dependency
39
38
  name: yard
40
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &11757200 !ruby/object:Gem::Requirement
41
40
  none: false
42
- requirements:
41
+ requirements:
43
42
  - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 0.6.0
43
+ - !ruby/object:Gem::Version
44
+ version: 0.7.0
46
45
  type: :development
47
46
  prerelease: false
48
- version_requirements: *id003
47
+ version_requirements: *11757200
49
48
  description: A DataMapper plugin for adding predefined resources to Models.
50
- email:
49
+ email:
51
50
  - postmodern.mod3@gmail.com
52
51
  executables: []
53
-
54
52
  extensions: []
55
-
56
- extra_rdoc_files:
53
+ extra_rdoc_files:
57
54
  - README.md
58
55
  - ChangeLog.md
59
56
  - LICENSE.txt
60
- files:
57
+ files:
61
58
  - .document
62
59
  - .rspec
63
60
  - .yardopts
@@ -71,36 +68,35 @@ files:
71
68
  - lib/dm-is-predefined.rb
72
69
  - lib/dm-is-predefined/is/exceptions/unknown_resource.rb
73
70
  - lib/dm-is-predefined/is/predefined.rb
71
+ - spec/integration/models/migrated_model.rb
74
72
  - spec/integration/models/test_model.rb
75
73
  - spec/integration/predefined_spec.rb
76
74
  - spec/spec_helper.rb
77
75
  has_rdoc: yard
78
76
  homepage: http://github.com/postmodern/dm-is-predefined
79
- licenses:
77
+ licenses:
80
78
  - MIT
81
79
  post_install_message:
82
80
  rdoc_options: []
83
-
84
- require_paths:
81
+ require_paths:
85
82
  - lib
86
- required_ruby_version: !ruby/object:Gem::Requirement
83
+ required_ruby_version: !ruby/object:Gem::Requirement
87
84
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: "0"
92
- required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
90
  none: false
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
97
94
  version: 1.3.6
98
95
  requirements: []
99
-
100
96
  rubyforge_project: dm-is-predefined
101
- rubygems_version: 1.5.2
97
+ rubygems_version: 1.6.2
102
98
  signing_key:
103
99
  specification_version: 3
104
100
  summary: DataMapper plugin for adding predefined resources to models.
105
- test_files:
101
+ test_files:
106
102
  - spec/integration/predefined_spec.rb