dataset 1.3.1

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.
Files changed (46) hide show
  1. data/CHANGELOG +59 -0
  2. data/LICENSE +19 -0
  3. data/README +111 -0
  4. data/Rakefile +31 -0
  5. data/TODO +15 -0
  6. data/VERSION.yml +4 -0
  7. data/lib/dataset.rb +128 -0
  8. data/lib/dataset/base.rb +157 -0
  9. data/lib/dataset/collection.rb +19 -0
  10. data/lib/dataset/database/base.rb +30 -0
  11. data/lib/dataset/database/mysql.rb +34 -0
  12. data/lib/dataset/database/postgresql.rb +34 -0
  13. data/lib/dataset/database/sqlite3.rb +32 -0
  14. data/lib/dataset/extensions/cucumber.rb +20 -0
  15. data/lib/dataset/extensions/rspec.rb +21 -0
  16. data/lib/dataset/extensions/test_unit.rb +60 -0
  17. data/lib/dataset/instance_methods.rb +10 -0
  18. data/lib/dataset/load.rb +47 -0
  19. data/lib/dataset/record/fixture.rb +73 -0
  20. data/lib/dataset/record/meta.rb +66 -0
  21. data/lib/dataset/record/model.rb +50 -0
  22. data/lib/dataset/resolver.rb +110 -0
  23. data/lib/dataset/session.rb +51 -0
  24. data/lib/dataset/session_binding.rb +317 -0
  25. data/lib/dataset/version.rb +9 -0
  26. data/plugit/descriptor.rb +25 -0
  27. data/spec/dataset/cucumber_spec.rb +54 -0
  28. data/spec/dataset/database/base_spec.rb +21 -0
  29. data/spec/dataset/record/meta_spec.rb +14 -0
  30. data/spec/dataset/resolver_spec.rb +110 -0
  31. data/spec/dataset/rspec_spec.rb +133 -0
  32. data/spec/dataset/session_binding_spec.rb +198 -0
  33. data/spec/dataset/session_spec.rb +299 -0
  34. data/spec/dataset/test_unit_spec.rb +210 -0
  35. data/spec/fixtures/datasets/constant_not_defined.rb +0 -0
  36. data/spec/fixtures/datasets/ending_with_dataset.rb +2 -0
  37. data/spec/fixtures/datasets/exact_name.rb +2 -0
  38. data/spec/fixtures/datasets/not_a_dataset_base.rb +2 -0
  39. data/spec/fixtures/more_datasets/in_another_directory.rb +2 -0
  40. data/spec/models.rb +18 -0
  41. data/spec/schema.rb +26 -0
  42. data/spec/spec_helper.rb +47 -0
  43. data/spec/stubs/mini_rails.rb +18 -0
  44. data/spec/stubs/test_help.rb +1 -0
  45. data/tasks/dataset.rake +19 -0
  46. metadata +120 -0
File without changes
@@ -0,0 +1,2 @@
1
+ class EndingWithDataset < Dataset::Base
2
+ end
@@ -0,0 +1,2 @@
1
+ class ExactName < Dataset::Base
2
+ end
@@ -0,0 +1,2 @@
1
+ class NotADatasetBase
2
+ end
@@ -0,0 +1,2 @@
1
+ class InAnotherDirectoryDataset < Dataset::Base
2
+ end
data/spec/models.rb ADDED
@@ -0,0 +1,18 @@
1
+ class Person < ActiveRecord::Base
2
+ attr_protected :last_name
3
+ end
4
+ class Place < ActiveRecord::Base
5
+ set_table_name 'places_table'
6
+ end
7
+ class Thing < ActiveRecord::Base; end
8
+ class Note < ActiveRecord::Base
9
+ belongs_to :person
10
+ end
11
+ class State < Place; end
12
+ class NorthCarolina < State; end
13
+
14
+ module Nested
15
+ class Place < ActiveRecord::Base
16
+ set_table_name 'places_table'
17
+ end
18
+ end
data/spec/schema.rb ADDED
@@ -0,0 +1,26 @@
1
+ ActiveRecord::Schema.define(:version => 20081126181722) do
2
+ create_table :people, :force => true do |t|
3
+ t.column :first_name, :string
4
+ t.column :last_name, :string
5
+ end
6
+
7
+ create_table :places_table, :force => true do |t|
8
+ t.column :name, :string
9
+ t.column :location, :string
10
+ t.column :type, :string
11
+ end
12
+
13
+ create_table :things, :force => true do |t|
14
+ t.column :name, :string
15
+ t.column :description, :string
16
+ t.column :created_on, :date
17
+ t.column :updated_on, :date
18
+ end
19
+
20
+ create_table :notes, :force => true do |t|
21
+ t.column :person_id, :integer
22
+ t.column :content, :string
23
+ t.column :created_at, :datetime
24
+ t.column :updated_at, :datetime
25
+ end
26
+ end
@@ -0,0 +1,47 @@
1
+ SPEC_ROOT = File.expand_path(File.dirname(__FILE__))
2
+ require "#{SPEC_ROOT}/../plugit/descriptor"
3
+
4
+ # From RSpec's spec_helper.rb. Necessary to run an example group.
5
+ def with_sandboxed_options
6
+ attr_reader :options
7
+
8
+ before(:each) do
9
+ @original_rspec_options = ::Spec::Runner.options
10
+ ::Spec::Runner.use(@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new))
11
+ end
12
+
13
+ after(:each) do
14
+ ::Spec::Runner.use(@original_rspec_options)
15
+ end
16
+
17
+ yield
18
+ end
19
+
20
+ $LOAD_PATH << SPEC_ROOT
21
+ RAILS_ROOT = "#{SPEC_ROOT}/.."
22
+ $LOAD_PATH << "#{RAILS_ROOT}/lib"
23
+ RAILS_LOG_FILE = "#{RAILS_ROOT}/log/test.log"
24
+ SQLITE_DATABASE = "#{SPEC_ROOT}/sqlite3.db"
25
+
26
+ require 'fileutils'
27
+ FileUtils.mkdir_p(File.dirname(RAILS_LOG_FILE))
28
+ FileUtils.touch(RAILS_LOG_FILE)
29
+ FileUtils.mkdir_p("#{SPEC_ROOT}/tmp")
30
+ FileUtils.rm_rf("#{SPEC_ROOT}/tmp/*")
31
+ FileUtils.rm_f(SQLITE_DATABASE)
32
+
33
+ require 'logger'
34
+ RAILS_DEFAULT_LOGGER = Logger.new(RAILS_LOG_FILE)
35
+ RAILS_DEFAULT_LOGGER.level = Logger::DEBUG
36
+
37
+ ActiveRecord::Base.silence do
38
+ ActiveRecord::Base.configurations = {'test' => {
39
+ 'adapter' => 'sqlite3',
40
+ 'database' => SQLITE_DATABASE
41
+ }}
42
+ ActiveRecord::Base.establish_connection 'test'
43
+ load "#{SPEC_ROOT}/schema.rb"
44
+ end
45
+
46
+ require "models"
47
+ require "dataset"
@@ -0,0 +1,18 @@
1
+ # Define some stubs to fake Rails...
2
+ module ActiveRecord
3
+ class Base
4
+ end
5
+ end
6
+
7
+ module ActionController
8
+ class Dispatcher
9
+ end
10
+
11
+ class Base
12
+ end
13
+
14
+ class IntegrationTest
15
+ def self.use_transactional_fixtures=(x)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1 @@
1
+ # This file is loaded by rails/world.rb
@@ -0,0 +1,19 @@
1
+ namespace :db do
2
+ namespace :dataset do
3
+ desc "Load one or more datasets into the current environment's database using DATASETS=name,name"
4
+ task :load => :environment do
5
+ require 'dataset'
6
+ dataset_names = (ENV['DATASETS'] || 'default').split(',')
7
+
8
+ context = Class.new do
9
+ extend Dataset::ContextClassMethods
10
+ datasets_directory [
11
+ "#{RAILS_ROOT}/spec/datasets",
12
+ "#{RAILS_ROOT}/test/datasets"
13
+ ].detect {|path| File.directory?(path)}
14
+ add_dataset *dataset_names
15
+ dataset_session.load_datasets_for self
16
+ end
17
+ end
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dataset
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.1
5
+ platform: ruby
6
+ authors:
7
+ - Adam Williams
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-22 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activerecord
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.3.0
34
+ version:
35
+ description: A simple API for creating and finding sets of data in your database, built on ActiveRecord.
36
+ email: adam@thewilliams.ws
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - LICENSE
43
+ - README
44
+ - TODO
45
+ files:
46
+ - CHANGELOG
47
+ - LICENSE
48
+ - README
49
+ - Rakefile
50
+ - TODO
51
+ - VERSION.yml
52
+ - lib/dataset.rb
53
+ - lib/dataset/base.rb
54
+ - lib/dataset/collection.rb
55
+ - lib/dataset/database/base.rb
56
+ - lib/dataset/database/mysql.rb
57
+ - lib/dataset/database/postgresql.rb
58
+ - lib/dataset/database/sqlite3.rb
59
+ - lib/dataset/extensions/cucumber.rb
60
+ - lib/dataset/extensions/rspec.rb
61
+ - lib/dataset/extensions/test_unit.rb
62
+ - lib/dataset/instance_methods.rb
63
+ - lib/dataset/load.rb
64
+ - lib/dataset/record/fixture.rb
65
+ - lib/dataset/record/meta.rb
66
+ - lib/dataset/record/model.rb
67
+ - lib/dataset/resolver.rb
68
+ - lib/dataset/session.rb
69
+ - lib/dataset/session_binding.rb
70
+ - lib/dataset/version.rb
71
+ - plugit/descriptor.rb
72
+ - tasks/dataset.rake
73
+ has_rdoc: true
74
+ homepage: http://github.com/aiwilliams/dataset
75
+ licenses: []
76
+
77
+ post_install_message:
78
+ rdoc_options:
79
+ - --charset=UTF-8
80
+ require_paths:
81
+ - lib
82
+ - tasks
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: "0"
88
+ version:
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
95
+ requirements: []
96
+
97
+ rubyforge_project:
98
+ rubygems_version: 1.3.5
99
+ signing_key:
100
+ specification_version: 3
101
+ summary: A simple API for creating and finding sets of data in your database, built on ActiveRecord.
102
+ test_files:
103
+ - spec/dataset/cucumber_spec.rb
104
+ - spec/dataset/database/base_spec.rb
105
+ - spec/dataset/record/meta_spec.rb
106
+ - spec/dataset/resolver_spec.rb
107
+ - spec/dataset/rspec_spec.rb
108
+ - spec/dataset/session_binding_spec.rb
109
+ - spec/dataset/session_spec.rb
110
+ - spec/dataset/test_unit_spec.rb
111
+ - spec/fixtures/datasets/constant_not_defined.rb
112
+ - spec/fixtures/datasets/ending_with_dataset.rb
113
+ - spec/fixtures/datasets/exact_name.rb
114
+ - spec/fixtures/datasets/not_a_dataset_base.rb
115
+ - spec/fixtures/more_datasets/in_another_directory.rb
116
+ - spec/models.rb
117
+ - spec/schema.rb
118
+ - spec/spec_helper.rb
119
+ - spec/stubs/mini_rails.rb
120
+ - spec/stubs/test_help.rb