dataset 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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