yogo-datamapper 0.3.0

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/.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