yogo-datamapper 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,24 @@
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
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+ .bundle
21
+ .yardoc
22
+
23
+ ## PROJECT::SPECIFIC
24
+ spec/tmp
data/Gemfile ADDED
@@ -0,0 +1,26 @@
1
+ source :rubygems
2
+ gemspec
3
+
4
+ #
5
+ # Development and Test Dependencies
6
+ #
7
+ group :development, :test do
8
+ gem "rake"
9
+ gem "jeweler"
10
+ gem "yard"
11
+ gem "yardstick"
12
+ # Testing gems
13
+ gem "rspec"
14
+ gem "rack-test"
15
+ gem "cucumber"
16
+
17
+ platforms(:mri_19) do
18
+ gem "ruby-debug19", :require => "ruby-debug"
19
+ gem "rack-debug19", :require => "rack-debug"
20
+ end
21
+
22
+ platforms(:mri_18) do
23
+ gem "ruby-debug"
24
+ gem "rack-debug"
25
+ end
26
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,137 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ yogo-datamapper (0.3.0)
5
+ dm-aggregates (~> 1.0.2)
6
+ dm-core (~> 1.0.2)
7
+ dm-is-remixable
8
+ dm-migrations
9
+ dm-timestamps
10
+ dm-types (~> 1.0.2)
11
+ dm-validations
12
+ yogo-operation
13
+ yogo-support
14
+
15
+ GEM
16
+ remote: http://rubygems.org/
17
+ specs:
18
+ addressable (2.2.2)
19
+ archive-tar-minitar (0.5.2)
20
+ builder (2.1.2)
21
+ columnize (0.3.1)
22
+ cucumber (0.9.3)
23
+ builder (~> 2.1.2)
24
+ diff-lcs (~> 1.1.2)
25
+ gherkin (~> 2.2.9)
26
+ json (~> 1.4.6)
27
+ term-ansicolor (~> 1.0.5)
28
+ dataflow (0.3.1)
29
+ diff-lcs (1.1.2)
30
+ dm-aggregates (1.0.2)
31
+ dm-core (~> 1.0.2)
32
+ dm-core (1.0.2)
33
+ addressable (~> 2.2)
34
+ extlib (~> 0.9.15)
35
+ dm-is-remixable (1.0.2)
36
+ dm-core (~> 1.0.2)
37
+ dm-migrations (1.0.2)
38
+ dm-core (~> 1.0.2)
39
+ dm-timestamps (1.0.2)
40
+ dm-core (~> 1.0.2)
41
+ dm-types (1.0.2)
42
+ dm-core (~> 1.0.2)
43
+ fastercsv (~> 1.5.3)
44
+ json_pure (~> 1.4)
45
+ stringex (~> 1.1.0)
46
+ uuidtools (~> 2.1.1)
47
+ dm-validations (1.0.2)
48
+ dm-core (~> 1.0.2)
49
+ extlib (0.9.15)
50
+ fastercsv (1.5.3)
51
+ gemcutter (0.6.1)
52
+ gherkin (2.2.9)
53
+ json (~> 1.4.6)
54
+ term-ansicolor (~> 1.0.5)
55
+ git (1.2.5)
56
+ jeweler (1.4.0)
57
+ gemcutter (>= 0.1.0)
58
+ git (>= 1.2.5)
59
+ rubyforge (>= 2.0.0)
60
+ json (1.4.6)
61
+ json_pure (1.4.6)
62
+ linecache (0.43)
63
+ linecache19 (0.5.11)
64
+ ruby_core_source (>= 0.1.4)
65
+ rack (1.2.1)
66
+ rack-debug (1.4.2)
67
+ rack (>= 1.0)
68
+ ruby-debug (>= 0.10)
69
+ rack-debug19 (1.4.2)
70
+ rack (>= 1.0)
71
+ ruby-debug19 (>= 0.11.6)
72
+ rack-test (0.5.6)
73
+ rack (>= 1.0)
74
+ rake (0.8.7)
75
+ rspec (2.0.1)
76
+ rspec-core (~> 2.0.1)
77
+ rspec-expectations (~> 2.0.1)
78
+ rspec-mocks (~> 2.0.1)
79
+ rspec-core (2.0.1)
80
+ rspec-expectations (2.0.1)
81
+ diff-lcs (>= 1.1.2)
82
+ rspec-mocks (2.0.1)
83
+ rspec-core (~> 2.0.1)
84
+ rspec-expectations (~> 2.0.1)
85
+ ruby-debug (0.10.3)
86
+ columnize (>= 0.1)
87
+ ruby-debug-base (~> 0.10.3.0)
88
+ ruby-debug-base (0.10.3)
89
+ linecache (>= 0.3)
90
+ ruby-debug-base19 (0.11.24)
91
+ columnize (>= 0.3.1)
92
+ linecache19 (>= 0.5.11)
93
+ ruby_core_source (>= 0.1.4)
94
+ ruby-debug19 (0.11.6)
95
+ columnize (>= 0.3.1)
96
+ linecache19 (>= 0.5.11)
97
+ ruby-debug-base19 (>= 0.11.19)
98
+ ruby_core_source (0.1.4)
99
+ archive-tar-minitar (>= 0.5.2)
100
+ rubyforge (2.0.4)
101
+ json_pure (>= 1.1.7)
102
+ stringex (1.1.0)
103
+ term-ansicolor (1.0.5)
104
+ uuidtools (2.1.1)
105
+ yard (0.6.1)
106
+ yardstick (0.1.0)
107
+ yard (~> 0.2)
108
+ yogo-operation (0.1.2)
109
+ dataflow
110
+ yogo-support (~> 0.1.0)
111
+ yogo-support (0.1.1)
112
+
113
+ PLATFORMS
114
+ ruby
115
+
116
+ DEPENDENCIES
117
+ cucumber
118
+ dm-aggregates (~> 1.0.2)
119
+ dm-core (~> 1.0.2)
120
+ dm-is-remixable
121
+ dm-migrations
122
+ dm-timestamps
123
+ dm-types (~> 1.0.2)
124
+ dm-validations
125
+ jeweler
126
+ rack-debug
127
+ rack-debug19
128
+ rack-test
129
+ rake
130
+ rspec
131
+ ruby-debug
132
+ ruby-debug19
133
+ yard
134
+ yardstick
135
+ yogo-datamapper!
136
+ yogo-operation
137
+ yogo-support
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Ryan Heimbuch, Montana State University
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,17 @@
1
+ = yogo-datamapper
2
+
3
+ Description goes here.
4
+
5
+ == Note on Patches/Pull Requests
6
+
7
+ * Fork the project.
8
+ * Make your feature addition or bug fix.
9
+ * Add tests for it. This is important so I don't break it in a
10
+ future version unintentionally.
11
+ * Commit, do not mess with rakefile, version, or history.
12
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
13
+ * Send me a pull request. Bonus points for topic branches.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2010 Ryan Heimbuch, Montana State University. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,57 @@
1
+ begin
2
+ require 'bundler'
3
+ Bundler.setup
4
+ rescue LoadError
5
+ puts "Bundler is not intalled. Install with: gem install bundler"
6
+ end
7
+
8
+ require 'jeweler'
9
+ Jeweler::Tasks.new do |gem|
10
+ gem.name = %q{yogo-datamapper}
11
+ gem.authors = ["Ryan Heimbuch"]
12
+ gem.description = %q{Yogo extensions to DataMapper}
13
+ gem.email = %q{rheimbuch@gmail.com}
14
+ gem.homepage = %q{http://github.com/yogo/yogo-datamapper}
15
+ gem.summary = %q{Yogo extensions to DataMapper}
16
+ gem.add_dependency( %q<dm-core>, "~> 1.0.2")
17
+ gem.add_dependency( %q<dm-aggregates>, "~> 1.0.2")
18
+ gem.add_dependency( %q<dm-types>, "~> 1.0.2")
19
+ gem.add_dependency( %q<dm-migrations>, ">= 0" )
20
+ gem.add_dependency( %q<dm-validations>, ">= 0" )
21
+ gem.add_dependency( %q<dm-timestamps>, ">= 0" )
22
+ gem.add_dependency( %q<dm-is-remixable>, ">= 0" )
23
+ gem.add_dependency( %q<yogo-support>, ">= 0" )
24
+ gem.add_dependency( %q<yogo-operation>, ">= 0" )
25
+ end
26
+
27
+ begin
28
+ require 'rspec/core/rake_task'
29
+ RSpec::Core::RakeTask.new(:spec)
30
+
31
+ desc 'Run all examples using rcov'
32
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
33
+ spec.rcov = true
34
+ spec.rcov_opts = %[-Ilib -Ispec --exclude "mocks,expectations,gems/*,spec/resources,spec/lib,spec/spec_helper.rb,db/*,/Library/Ruby/*,config/*"]
35
+ spec.rcov_opts << %[--no-html --aggregate coverage.data]
36
+ end
37
+ rescue LoadError
38
+ puts "RSpec not installed. Install with: bundle install"
39
+ end
40
+
41
+ begin
42
+ require 'cucumber/rake/task'
43
+ Cucumber::Rake::Task.new(:features)
44
+ rescue LoadError
45
+ task :features do
46
+ abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
47
+ end
48
+ end
49
+
50
+ begin
51
+ require 'yard'
52
+ YARD::Rake::YardocTask.new
53
+ rescue LoadError
54
+ task :yardoc do
55
+ abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
56
+ end
57
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.3.0
@@ -0,0 +1 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
@@ -0,0 +1,9 @@
1
+ Feature: something something
2
+ In order to something something
3
+ A user something something
4
+ something something something
5
+
6
+ Scenario: something something
7
+ Given inspiration
8
+ When I create a sweet new gem
9
+ Then everyone should see how awesome I am
@@ -0,0 +1,15 @@
1
+ require 'yogo/datamapper/model/operations/add'
2
+ require 'dm-types/uuid'
3
+
4
+ module Yogo
5
+ module DataMapper
6
+ module Model
7
+ module Common
8
+ module Properties
9
+ UUIDKey = Operations::Add::Property.partial(X, :id, ::DataMapper::Property::UUID, {:key => true, :default => lambda{|*args| UUIDTools::UUID.timestamp_create}})
10
+
11
+ end # Properties
12
+ end # Common
13
+ end # Model
14
+ end # DataMapper
15
+ end # Yogo
@@ -0,0 +1,31 @@
1
+ require 'yogo/datamapper/model/operations/clear'
2
+ require 'yogo/datamapper/model/operations/add'
3
+
4
+ module Yogo
5
+ module DataMapper
6
+ module Model
7
+ module Configuration
8
+
9
+ def operation_definitions
10
+ @_operation_definitions ||= []
11
+ end
12
+
13
+ def operation(op_name, *args)
14
+ op_def = [op_name.to_s, args].flatten
15
+ operation_definitions << op_def unless operation_definitions.include?(op_def)
16
+ end
17
+
18
+ def to_proc
19
+ ops = operation_definitions.map{|op_def| Operations[op_def.first] }
20
+ partial_ops = []
21
+ ops.each_with_index do |op, i|
22
+ next unless op
23
+ partial_ops[i] = op.partial(X, *operation_definitions[i][1..-1])
24
+ end
25
+ partial_ops.compact!
26
+ partial_ops.reduce{|composed, partial_op| composed * partial_op}
27
+ end
28
+ end # Configuration
29
+ end # Model
30
+ end # DataMapper
31
+ end # Yogo
@@ -0,0 +1,11 @@
1
+
2
+ module Yogo
3
+ module DataMapper
4
+ module Model
5
+ Operations = {}
6
+ end # Model
7
+ end # DataMapper
8
+ end # Yogo
9
+
10
+ require 'yogo/datamapper/model/operations/add'
11
+ require 'yogo/datamapper/model/operations/clear'
@@ -0,0 +1,31 @@
1
+ require 'yogo/operation'
2
+ require 'yogo/datamapper/model/operations'
3
+
4
+ module Yogo
5
+ module DataMapper
6
+ module Model
7
+ Operations['add/property'] = Op.on(::DataMapper::Model) do |model, name, type, options|
8
+ type ||= "String"
9
+ options ||= {}
10
+
11
+ type = ::DataMapper::Property.find_class(type.to_s)
12
+
13
+ model.property(name, type, options)
14
+ model
15
+ end
16
+
17
+ Operations['add/relationship'] = Op.on(::DataMapper::Model) do |model, method, *args|
18
+ model.send(method, *args)
19
+ model
20
+ end
21
+
22
+ Operations['add/has_relationship'] = Operations['add/relationship'].partial(X, :has, X, X, X)
23
+
24
+ Operations['add/has_n'] = Operations['add/has_relationship'].partial(X, Infinity, X, X)
25
+
26
+ Operations['add/has_1'] = Operations['add/has_relationship'].partial(X, 1, X, X)
27
+
28
+ Operations['add/belongs_to'] = Operations['add/relationship'].partial(X, :belongs_to, X, X)
29
+ end # Model
30
+ end # DataMapper
31
+ end # Yogo
@@ -0,0 +1,30 @@
1
+ require 'yogo/operation'
2
+ require 'yogo/datamapper/model/operations'
3
+
4
+ module Yogo
5
+ module DataMapper
6
+ module Model
7
+
8
+ Operations['clear/properties'] = Op.on(::DataMapper::Model) do |model|
9
+ model.properties.clear
10
+ model.properties.instance_variable_get(:@properties).clear #clear out the name index
11
+ model
12
+ end
13
+
14
+ Operations['clear/relationships'] = Op.on(::DataMapper::Model) do |model|
15
+ model.relationships.clear
16
+ model
17
+ end
18
+
19
+ Operations['clear/validators'] = Op.on(::DataMapper::Model) do |model|
20
+ model.validators.clear!
21
+ model
22
+ end
23
+
24
+ Operations['clear/all'] = Operations['clear/properties'] *
25
+ Operations['clear/relationships'] *
26
+ Operations['clear/validators']
27
+
28
+ end # Model
29
+ end # DataMapper
30
+ end # Yogo
@@ -0,0 +1,25 @@
1
+ require 'yogo/configuration'
2
+ require 'yogo/datamapper/model/configuration'
3
+ require 'yogo/datamapper/model/common/properties'
4
+
5
+ require 'dm-types/uuid'
6
+ require 'dm-types/yaml'
7
+
8
+ module Yogo
9
+ module DataMapper
10
+ module Model
11
+ module Stored
12
+ module Configuration
13
+ include ::DataMapper::Resource
14
+ include Dynamic::Configuration
15
+
16
+ is :remixable
17
+
18
+ Common::Properties::UUIDKey[self]
19
+
20
+ property :operation_definitions, Yaml, :default => lambda {|*args| []}
21
+ end # Configuration
22
+ end # Stored
23
+ end # Model
24
+ end # DataMapper
25
+ end # Yogo
@@ -0,0 +1,30 @@
1
+ require 'yogo/datamapper/repository_manager/model'
2
+ require 'yogo/datamapper/repository_manager/resource'
3
+
4
+ module Yogo
5
+ module DataMapper
6
+ module RepositoryManager
7
+ def self.included(base)
8
+ base.class_eval do
9
+ extend(RepositoryManager::Model)
10
+ include(RepositoryManager::Resource)
11
+ end
12
+ end
13
+ end # RepositoryManager
14
+ end # DataMapper
15
+ end # Yogo
16
+
17
+ module DataMapper
18
+ module Is
19
+ module RepositoryManager
20
+ def is_repository_manager
21
+ include(Yogo::DataMapper::RepositoryManager)
22
+ end
23
+ end # RepositoryManager
24
+ end # Is
25
+
26
+ if const_defined?("Model")
27
+ Model.append_extensions(Is::RepositoryManager)
28
+ end
29
+ end # DataMapper
30
+
@@ -0,0 +1,40 @@
1
+ module Yogo
2
+ module DataMapper
3
+ module RepositoryManager
4
+ module Model
5
+ # Class method for informing Project instances about what kinds of models
6
+ # might be stored inside thier Project#managed_repository.
7
+ #
8
+ # @param [DataMapper::Model] model class that might be stored in Project managed_repositories
9
+ # @return [Array<DataMapper::Model>] list of currently managed models
10
+ def manage(*args)
11
+ @managed_models ||= []
12
+ models = args
13
+
14
+ @managed_models += models
15
+ @managed_models.uniq!
16
+
17
+ @managed_models
18
+ end
19
+
20
+ # Models that are currently managed by Project instances.
21
+ # @return [Array<DataMapper::Model>] list of currently managed models
22
+ def managed_models
23
+ @managed_models
24
+ end
25
+
26
+ # Ensure that Relation models are also managed
27
+ def finalize_managed_models!
28
+ models = []
29
+ @managed_models.each do |m|
30
+ models += m.relationships.values.map{|r| r.child_model }
31
+ models += m.relationships.values.map{|r| r.parent_model }
32
+ end
33
+ @managed_models += models
34
+ @managed_models.uniq!
35
+ @managed_models
36
+ end
37
+ end # Model
38
+ end # RepositoryManager
39
+ end # DataMapper
40
+ end # Yogo
@@ -0,0 +1,91 @@
1
+ module Yogo
2
+ module DataMapper
3
+ module RepositoryManager
4
+ module Resource
5
+ def managed_repository_name
6
+ raise NotImplementedError
7
+ end
8
+
9
+ def adapter_config
10
+ raise NotImplementedError
11
+ end
12
+
13
+ def adapter
14
+ begin
15
+ ::DataMapper.repository(managed_repository_name).adapter
16
+ rescue ::DataMapper::RepositoryNotSetupError
17
+ ::DataMapper.setup(managed_repository_name, adapter_config)
18
+ retry
19
+ end
20
+ end
21
+
22
+ def managed_repository(&block)
23
+ adapter # ensure the adapter get's setup or exists
24
+ if block_given?
25
+ ::DataMapper.repository(managed_repository_name, &block)
26
+ else
27
+ ::DataMapper.repository(managed_repository_name)
28
+ end
29
+ end
30
+
31
+ # Ensure that models that models managed by the Project
32
+ # are properly migrated/upgraded inside the Project managed repository.
33
+ #
34
+ # @author Ryan Heimbuch
35
+ # @todo Refactor this method into a module in yogo-project
36
+ def prepare_models
37
+ adapter # ensure the adapter exists or is setup
38
+ managed_repository.scope {
39
+ self.class.finalize_managed_models!
40
+ self.class.managed_models.each do |klass|
41
+ klass.auto_upgrade!
42
+ end
43
+ }
44
+ end
45
+
46
+ # Ensure that models that we might store in the Project#managed_repository
47
+ # are properly migrated/upgrade whenever the Project changes.
48
+ # @author Ryan Heimbuch
49
+ # @see Project#prepare_models
50
+ after :save, :prepare_models
51
+
52
+ # Builds a "new", unsaved datamapper resource, that is explicitly
53
+ # bound to the Project#managed_repository.
54
+ # If you want to create a new resource that will be saved inside the
55
+ # repository of a Project, you should always use this method.
56
+ #
57
+ # @example Create a new site that is stored in myProject.managed_repository
58
+ # managedSite = myProject.build_managed(Voeis::Site, :name => ...)
59
+ #
60
+ # @example Doing any of these will NOT work consistently (if at all)
61
+ # managedSite1 = Voeis::Site.new(:name => ...)
62
+ # managedSite1.save # WILL NOT save in myProject.managed_repository
63
+ #
64
+ # managedSite2 = myProject.managed_repository{Voeis::Site.new(:name => ...)}
65
+ # managedSite2.save # WILL NOT save in myProject.managed_repository
66
+ #
67
+ # Boring Details:
68
+ # Initially "new" model resources do not bind themselves to any repository.
69
+ # At some point a "new" resource will persist itself and bind itself exclusively
70
+ # to the repository that it "persisted into". This step is fiddly to catch, and
71
+ # happens deep inside the DataMapper code. It is MUCH easier to explictly bind
72
+ # the "new" resource to a particular repository immediately after calling #new.
73
+ # This requires using reflection to modify the internal state of the resource object,
74
+ # so it is best sealed inside a single method, rather than scattered throughout
75
+ # the codebase.
76
+ #
77
+ # @todo Refactor into module in yogo-project
78
+ # @author Ryan Heimbuch
79
+ def build_managed(model_klass, attributes={})
80
+ unless self.class.managed_models.include? model_klass
81
+ self.class.manage(model_klass)
82
+ prepare_models
83
+ end
84
+ res = model_klass.new(attributes)
85
+ res.instance_variable_set(:@_repository, managed_repository)
86
+ res
87
+ end
88
+ end # RepositoryModels
89
+ end # RepositoryManager
90
+ end # DataMapper
91
+ end # Yogo
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
@@ -0,0 +1,89 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{yogo-datamapper}
8
+ s.version = "0.3.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Ryan Heimbuch"]
12
+ s.date = %q{2010-11-01}
13
+ s.description = %q{Yogo extensions to DataMapper}
14
+ s.email = %q{rheimbuch@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "features/step_definitions/yogo-datamapper_steps.rb",
29
+ "features/support/env.rb",
30
+ "features/yogo-datamapper.feature",
31
+ "lib/yogo/datamapper/model/common/properties.rb",
32
+ "lib/yogo/datamapper/model/configuration.rb",
33
+ "lib/yogo/datamapper/model/operations.rb",
34
+ "lib/yogo/datamapper/model/operations/add.rb",
35
+ "lib/yogo/datamapper/model/operations/clear.rb",
36
+ "lib/yogo/datamapper/model/stored/configuration.rb",
37
+ "lib/yogo/datamapper/repository_manager.rb",
38
+ "lib/yogo/datamapper/repository_manager/model.rb",
39
+ "lib/yogo/datamapper/repository_manager/resource.rb",
40
+ "spec/spec_helper.rb",
41
+ "yogo-datamapper.gemspec"
42
+ ]
43
+ s.homepage = %q{http://github.com/yogo/yogo-datamapper}
44
+ s.rdoc_options = ["--charset=UTF-8"]
45
+ s.require_paths = ["lib"]
46
+ s.rubygems_version = %q{1.3.7}
47
+ s.summary = %q{Yogo extensions to DataMapper}
48
+ s.test_files = [
49
+ "spec/spec_helper.rb"
50
+ ]
51
+
52
+ if s.respond_to? :specification_version then
53
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
54
+ s.specification_version = 3
55
+
56
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
+ s.add_runtime_dependency(%q<dm-core>, ["~> 1.0.2"])
58
+ s.add_runtime_dependency(%q<dm-aggregates>, ["~> 1.0.2"])
59
+ s.add_runtime_dependency(%q<dm-types>, ["~> 1.0.2"])
60
+ s.add_runtime_dependency(%q<dm-migrations>, [">= 0"])
61
+ s.add_runtime_dependency(%q<dm-validations>, [">= 0"])
62
+ s.add_runtime_dependency(%q<dm-timestamps>, [">= 0"])
63
+ s.add_runtime_dependency(%q<dm-is-remixable>, [">= 0"])
64
+ s.add_runtime_dependency(%q<yogo-support>, [">= 0"])
65
+ s.add_runtime_dependency(%q<yogo-operation>, [">= 0"])
66
+ else
67
+ s.add_dependency(%q<dm-core>, ["~> 1.0.2"])
68
+ s.add_dependency(%q<dm-aggregates>, ["~> 1.0.2"])
69
+ s.add_dependency(%q<dm-types>, ["~> 1.0.2"])
70
+ s.add_dependency(%q<dm-migrations>, [">= 0"])
71
+ s.add_dependency(%q<dm-validations>, [">= 0"])
72
+ s.add_dependency(%q<dm-timestamps>, [">= 0"])
73
+ s.add_dependency(%q<dm-is-remixable>, [">= 0"])
74
+ s.add_dependency(%q<yogo-support>, [">= 0"])
75
+ s.add_dependency(%q<yogo-operation>, [">= 0"])
76
+ end
77
+ else
78
+ s.add_dependency(%q<dm-core>, ["~> 1.0.2"])
79
+ s.add_dependency(%q<dm-aggregates>, ["~> 1.0.2"])
80
+ s.add_dependency(%q<dm-types>, ["~> 1.0.2"])
81
+ s.add_dependency(%q<dm-migrations>, [">= 0"])
82
+ s.add_dependency(%q<dm-validations>, [">= 0"])
83
+ s.add_dependency(%q<dm-timestamps>, [">= 0"])
84
+ s.add_dependency(%q<dm-is-remixable>, [">= 0"])
85
+ s.add_dependency(%q<yogo-support>, [">= 0"])
86
+ s.add_dependency(%q<yogo-operation>, [">= 0"])
87
+ end
88
+ end
89
+
metadata ADDED
@@ -0,0 +1,209 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yogo-datamapper
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
10
+ platform: ruby
11
+ authors:
12
+ - Ryan Heimbuch
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-11-01 00:00:00 -06:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: dm-core
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 0
30
+ - 2
31
+ version: 1.0.2
32
+ type: :runtime
33
+ prerelease: false
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: dm-aggregates
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 0
45
+ - 2
46
+ version: 1.0.2
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: dm-types
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 1
59
+ - 0
60
+ - 2
61
+ version: 1.0.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: dm-migrations
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ name: dm-validations
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ segments:
86
+ - 0
87
+ version: "0"
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: dm-timestamps
93
+ requirement: &id006 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ segments:
99
+ - 0
100
+ version: "0"
101
+ type: :runtime
102
+ prerelease: false
103
+ version_requirements: *id006
104
+ - !ruby/object:Gem::Dependency
105
+ name: dm-is-remixable
106
+ requirement: &id007 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ type: :runtime
115
+ prerelease: false
116
+ version_requirements: *id007
117
+ - !ruby/object:Gem::Dependency
118
+ name: yogo-support
119
+ requirement: &id008 !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ segments:
125
+ - 0
126
+ version: "0"
127
+ type: :runtime
128
+ prerelease: false
129
+ version_requirements: *id008
130
+ - !ruby/object:Gem::Dependency
131
+ name: yogo-operation
132
+ requirement: &id009 !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ segments:
138
+ - 0
139
+ version: "0"
140
+ type: :runtime
141
+ prerelease: false
142
+ version_requirements: *id009
143
+ description: Yogo extensions to DataMapper
144
+ email: rheimbuch@gmail.com
145
+ executables: []
146
+
147
+ extensions: []
148
+
149
+ extra_rdoc_files:
150
+ - LICENSE
151
+ - README.rdoc
152
+ files:
153
+ - .document
154
+ - .gitignore
155
+ - Gemfile
156
+ - Gemfile.lock
157
+ - LICENSE
158
+ - README.rdoc
159
+ - Rakefile
160
+ - VERSION
161
+ - features/step_definitions/yogo-datamapper_steps.rb
162
+ - features/support/env.rb
163
+ - features/yogo-datamapper.feature
164
+ - lib/yogo/datamapper/model/common/properties.rb
165
+ - lib/yogo/datamapper/model/configuration.rb
166
+ - lib/yogo/datamapper/model/operations.rb
167
+ - lib/yogo/datamapper/model/operations/add.rb
168
+ - lib/yogo/datamapper/model/operations/clear.rb
169
+ - lib/yogo/datamapper/model/stored/configuration.rb
170
+ - lib/yogo/datamapper/repository_manager.rb
171
+ - lib/yogo/datamapper/repository_manager/model.rb
172
+ - lib/yogo/datamapper/repository_manager/resource.rb
173
+ - spec/spec_helper.rb
174
+ - yogo-datamapper.gemspec
175
+ has_rdoc: true
176
+ homepage: http://github.com/yogo/yogo-datamapper
177
+ licenses: []
178
+
179
+ post_install_message:
180
+ rdoc_options:
181
+ - --charset=UTF-8
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ hash: -1712098966994122377
190
+ segments:
191
+ - 0
192
+ version: "0"
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ segments:
199
+ - 0
200
+ version: "0"
201
+ requirements: []
202
+
203
+ rubyforge_project:
204
+ rubygems_version: 1.3.7
205
+ signing_key:
206
+ specification_version: 3
207
+ summary: Yogo extensions to DataMapper
208
+ test_files:
209
+ - spec/spec_helper.rb