jamjar 0.0.1 → 1.0.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.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +1 -0
- data/README.md +26 -2
- data/jamjar.gemspec +3 -0
- data/lib/jamjar/model.rb +12 -0
- data/lib/jamjar/version.rb +2 -2
- data/lib/jamjar.rb +13 -1
- data/spec/jamjar_spec.rb +22 -0
- data/spec/spec_helper.rb +40 -0
- metadata +26 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 961841cf0afeaac3d88c100be19d014a5648ae89
|
4
|
+
data.tar.gz: e9bc1b79a1143c1a892e2756781dc9d8d36a129c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f25c7abd966afd28ec173d88db2764cbb6c098e86a303c2be5f4a7da246bf2f00c2519378a962c76bd41a2ce212f50b4b9be6639f7cce2e2d96c1cbd6e5afa59
|
7
|
+
data.tar.gz: 346e086a5793f03e2b8bcf53a78d32304f4f1a3569042de1e675c1127a19fcb39cde3e0d51f9de0daada5b8d2b50b0aa1289879caea4e1f3ad2abb2e0ed590f0
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jamjar
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.1.5
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# JamJar
|
2
2
|
|
3
|
-
JamJar dynamically creates
|
3
|
+
JamJar dynamically creates ActiveRecord models, backed by in-memory SQLite, to help you test your ActiveRecord extensions.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -16,7 +16,31 @@ And then execute:
|
|
16
16
|
|
17
17
|
## Usage
|
18
18
|
|
19
|
-
|
19
|
+
To generate a new model, simply call:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
JamJar.model
|
23
|
+
```
|
24
|
+
|
25
|
+
You can pass a block, which will be evaluated in the model's class context:
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
model = JamJar.model do
|
29
|
+
def self.foo
|
30
|
+
"bar"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
model.foo #=> "bar"
|
35
|
+
```
|
36
|
+
|
37
|
+
You can add columns to your model's table with `column`.
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
JamJar.model do
|
41
|
+
column :foo, :string
|
42
|
+
end
|
43
|
+
```
|
20
44
|
|
21
45
|
## Contributing
|
22
46
|
|
data/jamjar.gemspec
CHANGED
@@ -18,5 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(spec)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.required_ruby_version = ">= 1.9.2"
|
22
|
+
|
21
23
|
spec.add_runtime_dependency "activerecord", ">= 3.2"
|
24
|
+
spec.add_runtime_dependency "sqlite3", ">= 1.3.10"
|
22
25
|
end
|
data/lib/jamjar/model.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "active_record"
|
2
|
+
|
3
|
+
module JamJar
|
4
|
+
class Model < ActiveRecord::Base
|
5
|
+
self.abstract_class = true
|
6
|
+
establish_connection adapter: :sqlite3, database: ":memory:"
|
7
|
+
|
8
|
+
def self.column(name, type)
|
9
|
+
self.connection.add_column(self.table_name, name, type)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/jamjar/version.rb
CHANGED
data/lib/jamjar.rb
CHANGED
@@ -1,5 +1,17 @@
|
|
1
|
+
require "jamjar/model"
|
1
2
|
require "jamjar/version"
|
2
3
|
|
3
4
|
module JamJar
|
4
|
-
|
5
|
+
@@table_count = 0
|
6
|
+
|
7
|
+
def self.model
|
8
|
+
model = Class.new(JamJar::Model)
|
9
|
+
|
10
|
+
model.table_name = "table_#{@@table_count}"
|
11
|
+
@@table_count += 1
|
12
|
+
|
13
|
+
model.connection.create_table(model.table_name)
|
14
|
+
model.class_eval(&Proc.new) if block_given?
|
15
|
+
model
|
16
|
+
end
|
5
17
|
end
|
data/spec/jamjar_spec.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe JamJar do
|
4
|
+
describe "#model" do
|
5
|
+
subject { JamJar.model }
|
6
|
+
|
7
|
+
specify { expect_it.to be < ActiveRecord::Base }
|
8
|
+
specify { expect_it.to be_connected }
|
9
|
+
|
10
|
+
context "with block" do
|
11
|
+
subject { JamJar.model { def self.a; true; end } }
|
12
|
+
|
13
|
+
specify { expect(subject.a).to be_truthy }
|
14
|
+
end
|
15
|
+
|
16
|
+
context "with columns" do
|
17
|
+
subject { JamJar.model { column :foo, :string } }
|
18
|
+
|
19
|
+
specify { expect(subject.new).to respond_to(:foo) }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require "bundler"
|
2
|
+
|
3
|
+
unless ENV["TRAVIS_CI"]
|
4
|
+
if RUBY_VERSION[0] == "2"
|
5
|
+
require "byebug"
|
6
|
+
else
|
7
|
+
require "debugger"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# if ENV["TRAVIS_CI"]
|
12
|
+
# require "simplecov"
|
13
|
+
# require "coveralls"
|
14
|
+
|
15
|
+
# SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
16
|
+
|
17
|
+
# SimpleCov.start do
|
18
|
+
# add_filter "/spec/"
|
19
|
+
# end
|
20
|
+
# end
|
21
|
+
|
22
|
+
if ENV["TRAVIS_CI"]
|
23
|
+
Bundler.require
|
24
|
+
else
|
25
|
+
Bundler.require(:default, :tools)
|
26
|
+
end
|
27
|
+
|
28
|
+
# if defined?(Rails) && !Rails.respond_to?(:env)
|
29
|
+
# module Rails
|
30
|
+
# def self.env
|
31
|
+
# "default_env"
|
32
|
+
# end
|
33
|
+
# end
|
34
|
+
# end
|
35
|
+
|
36
|
+
Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f }
|
37
|
+
|
38
|
+
RSpec.configure do |config|
|
39
|
+
config.order = "random"
|
40
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jamjar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Drake-Brockman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sqlite3
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.3.10
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.3.10
|
27
41
|
description: JamJar dynamically creates SQLite-backed, in memory, ActiveRecord models
|
28
42
|
to help you test your ActiveRecord extensions.
|
29
43
|
email:
|
@@ -33,13 +47,18 @@ extensions: []
|
|
33
47
|
extra_rdoc_files: []
|
34
48
|
files:
|
35
49
|
- ".gitignore"
|
50
|
+
- ".ruby-gemset"
|
51
|
+
- ".ruby-version"
|
36
52
|
- Gemfile
|
37
53
|
- LICENSE
|
38
54
|
- README.md
|
39
55
|
- Rakefile
|
40
56
|
- jamjar.gemspec
|
41
57
|
- lib/jamjar.rb
|
58
|
+
- lib/jamjar/model.rb
|
42
59
|
- lib/jamjar/version.rb
|
60
|
+
- spec/jamjar_spec.rb
|
61
|
+
- spec/spec_helper.rb
|
43
62
|
homepage: https://github.com/thomasfedb/jamjar
|
44
63
|
licenses:
|
45
64
|
- MIT
|
@@ -52,7 +71,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
52
71
|
requirements:
|
53
72
|
- - ">="
|
54
73
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
74
|
+
version: 1.9.2
|
56
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
76
|
requirements:
|
58
77
|
- - ">="
|
@@ -60,8 +79,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
60
79
|
version: '0'
|
61
80
|
requirements: []
|
62
81
|
rubyforge_project:
|
63
|
-
rubygems_version: 2.4.
|
82
|
+
rubygems_version: 2.4.3
|
64
83
|
signing_key:
|
65
84
|
specification_version: 4
|
66
85
|
summary: JamJar generates ActiveRecord models for use in tests.
|
67
|
-
test_files:
|
86
|
+
test_files:
|
87
|
+
- spec/jamjar_spec.rb
|
88
|
+
- spec/spec_helper.rb
|