ninja-model 0.4.2
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/Gemfile +2 -0
- data/README.md +1 -0
- data/Rakefile +38 -0
- data/lib/generators/ninja_model/model/model_generator.rb +19 -0
- data/lib/generators/ninja_model/model/templates/model.rb +7 -0
- data/lib/generators/ninja_model/scaffold/scaffold_generator.rb +69 -0
- data/lib/generators/ninja_model.rb +12 -0
- data/lib/ninja-model.rb +1 -0
- data/lib/ninja_model/adapters/abstract_adapter.rb +63 -0
- data/lib/ninja_model/adapters/adapter_manager.rb +67 -0
- data/lib/ninja_model/adapters/adapter_pool.rb +128 -0
- data/lib/ninja_model/adapters/adapter_specification.rb +11 -0
- data/lib/ninja_model/adapters.rb +70 -0
- data/lib/ninja_model/associations/active_record_proxy.rb +53 -0
- data/lib/ninja_model/associations/association_proxy.rb +8 -0
- data/lib/ninja_model/associations/belongs_to_association.rb +31 -0
- data/lib/ninja_model/associations/has_many_association.rb +36 -0
- data/lib/ninja_model/associations/has_one_association.rb +19 -0
- data/lib/ninja_model/associations/ninja_model_proxy.rb +46 -0
- data/lib/ninja_model/associations.rb +198 -0
- data/lib/ninja_model/attributes.rb +134 -0
- data/lib/ninja_model/base.rb +106 -0
- data/lib/ninja_model/callbacks.rb +14 -0
- data/lib/ninja_model/configuration.rb +20 -0
- data/lib/ninja_model/core_ext/symbol.rb +7 -0
- data/lib/ninja_model/errors.rb +5 -0
- data/lib/ninja_model/identity.rb +24 -0
- data/lib/ninja_model/log_subscriber.rb +18 -0
- data/lib/ninja_model/persistence.rb +76 -0
- data/lib/ninja_model/predicate.rb +43 -0
- data/lib/ninja_model/railtie.rb +27 -0
- data/lib/ninja_model/reflection.rb +118 -0
- data/lib/ninja_model/relation/finder_methods.rb +74 -0
- data/lib/ninja_model/relation/query_methods.rb +62 -0
- data/lib/ninja_model/relation/spawn_methods.rb +59 -0
- data/lib/ninja_model/relation.rb +80 -0
- data/lib/ninja_model/scoping.rb +50 -0
- data/lib/ninja_model/validation.rb +38 -0
- data/lib/ninja_model/version.rb +3 -0
- data/lib/ninja_model.rb +38 -0
- data/spec/ninja_model/adapters/adapter_pool_spec.rb +72 -0
- data/spec/ninja_model/adapters_spec.rb +8 -0
- data/spec/ninja_model/attributes_spec.rb +85 -0
- data/spec/ninja_model/base_spec.rb +66 -0
- data/spec/ninja_model/identity_spec.rb +41 -0
- data/spec/ninja_model/persistence_spec.rb +9 -0
- data/spec/ninja_model/predicate_spec.rb +13 -0
- data/spec/ninja_model/query_methods_spec.rb +76 -0
- data/spec/ninja_model/relation_spec.rb +26 -0
- data/spec/ninja_model/scoping_spec.rb +40 -0
- data/spec/ninja_model_spec.rb +11 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/support/active_model_lint.rb +17 -0
- metadata +214 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ninja_model/attributes'
|
3
|
+
|
4
|
+
describe NinjaModel::Attributes do
|
5
|
+
before(:each) do
|
6
|
+
@klass = Class.new do
|
7
|
+
def initialize
|
8
|
+
@attributes = {}.with_indifferent_access
|
9
|
+
end
|
10
|
+
end
|
11
|
+
@klass.send :include, NinjaModel::Attributes
|
12
|
+
@klass.send :attr_reader, :attributes
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'adding an attribute' do
|
16
|
+
before(:each) do
|
17
|
+
@klass.attribute :var, :string
|
18
|
+
@obj = @klass.new
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should add a new attribute' do
|
22
|
+
@klass.model_attributes[:var].type.should eql(:string)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should add a read method' do
|
26
|
+
lambda { @obj.send :var }.should_not raise_error(NoMethodError)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should add a write method' do
|
30
|
+
lambda { @obj.send :var= }.should_not raise_error(NoMethodError)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe 'with an instance' do
|
35
|
+
describe 'writing an attribute value' do
|
36
|
+
before(:each) do
|
37
|
+
@klass.attribute :valid, :string
|
38
|
+
@obj = @klass.new
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should raise an error when writing an invalid attribute' do
|
42
|
+
lambda { @obj.write_attribute(:invalid, 'test') }.should raise_error(NoMethodError)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should properly update a valid attribute' do
|
46
|
+
@obj.write_attribute(:valid, 'test')
|
47
|
+
@obj.attributes['valid'].should eql('test')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe 'assigning from a hash' do
|
52
|
+
before(:each) do
|
53
|
+
@klass.attribute :valid, :string
|
54
|
+
@obj = @klass.new
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should update instance attributes' do
|
58
|
+
attrs = {:valid => 'valid value'}
|
59
|
+
@obj.send :attributes=, attrs
|
60
|
+
@obj.valid.should eql('valid value')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'checking existence of an attribute' do
|
65
|
+
before(:each) do
|
66
|
+
@klass.attribute :valid, :string
|
67
|
+
@obj = @klass.new
|
68
|
+
end
|
69
|
+
it { (@obj.send :attribute_method?, :valid).should be_true }
|
70
|
+
it { (@obj.send :attribute_method?, 'valid').should be_true }
|
71
|
+
it { (@obj.send :attribute_method?, :invalid).should be_false }
|
72
|
+
end
|
73
|
+
|
74
|
+
describe 'assigining default attributes from model' do
|
75
|
+
before(:each) do
|
76
|
+
@klass.attribute :valid, :string, {:default => 'foobar'}
|
77
|
+
@klass.send :class_inheritable_accessor, :primary_key
|
78
|
+
@obj = @klass.new
|
79
|
+
@attrs = @obj.attributes_from_model_attributes
|
80
|
+
end
|
81
|
+
it { @attrs.should have_key('valid') }
|
82
|
+
it { @attrs[:valid].should eql('foobar') }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NinjaModel::Base do
|
4
|
+
it_should_behave_like "ActiveModel"
|
5
|
+
before(:each) do
|
6
|
+
@klass = Class.new(NinjaModel::Base) do
|
7
|
+
end
|
8
|
+
@klass.send :attribute, :width, :integer
|
9
|
+
@klass.send :attribute, :height, :integer
|
10
|
+
@klass.send :attribute, :color, :string
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should return a configuration path' do
|
14
|
+
Rails.stubs(:root).returns('/')
|
15
|
+
@klass.configuration_path.should be_kind_of(String)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should accept a configuration path' do
|
19
|
+
@klass.configuration_path = 'foo'
|
20
|
+
@klass.configuration_path.should eql('foo')
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should return NinjaModel\'s logger' do
|
24
|
+
logger = mock('logger')
|
25
|
+
NinjaModel.stubs(:logger).returns(logger)
|
26
|
+
@klass.logger.should eql(logger)
|
27
|
+
end
|
28
|
+
|
29
|
+
it { @klass.should respond_to(:logger) }
|
30
|
+
|
31
|
+
it 'should generate a relation' do
|
32
|
+
@klass.relation.should be_kind_of(NinjaModel::Relation)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should instantiate from an existing data structure' do
|
36
|
+
attrs = {:width => 100, :height => 200, :color => 'red'}
|
37
|
+
@obj = @klass.new
|
38
|
+
@obj.instantiate(attrs)
|
39
|
+
@obj.attributes[:width].should eql(100)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should return a configuration' do
|
43
|
+
@klass.stubs(:configuration_path)
|
44
|
+
IO.stubs(:read).returns('foo: bar')
|
45
|
+
@klass.configuration.should be_kind_of(Hash)
|
46
|
+
@klass.configuration[:foo].should eql('bar')
|
47
|
+
end
|
48
|
+
|
49
|
+
describe 'scoping' do
|
50
|
+
it 'should return a stock relation for unscoped' do
|
51
|
+
@klass.unscoped.predicates.should be_empty
|
52
|
+
@klass.unscoped.limit_value.should be_nil
|
53
|
+
@klass.unscoped.offset_value.should be_nil
|
54
|
+
@klass.unscoped.ordering.should be_empty
|
55
|
+
@klass.unscoped.predicates.should be_empty
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should handle default scoping' do
|
59
|
+
@klass.default_scope(@klass.where(:width => 100))
|
60
|
+
rel = @klass.default_scoping.first
|
61
|
+
rel.should be_kind_of(NinjaModel::Relation)
|
62
|
+
rel.predicates.first.should be_kind_of(NinjaModel::Predicate)
|
63
|
+
rel.predicates.first.value.should eql(100)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NinjaModel::Identity do
|
4
|
+
before(:each) do
|
5
|
+
@klass = Class.new
|
6
|
+
@klass.send :include, NinjaModel::Identity
|
7
|
+
end
|
8
|
+
|
9
|
+
def persisted
|
10
|
+
obj = @klass.new
|
11
|
+
obj.stubs(:id).returns(123)
|
12
|
+
obj.stubs(:persisted?).returns(true)
|
13
|
+
obj
|
14
|
+
end
|
15
|
+
|
16
|
+
def unpersisted
|
17
|
+
obj = @klass.new
|
18
|
+
obj.stubs(:persisted?).returns(false)
|
19
|
+
obj
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'to_key' do
|
23
|
+
it 'should generate a key when persisted' do
|
24
|
+
persisted.to_key.should eql([123])
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should return nil when not persisted' do
|
28
|
+
unpersisted.to_key.should be_nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe 'to_param' do
|
33
|
+
it 'should generate a param when persisted' do
|
34
|
+
persisted.to_param.should eql('123')
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should return nil when not persisted' do
|
38
|
+
unpersisted.to_param.should be_nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NinjaModel::Predicate do
|
4
|
+
before(:each) do
|
5
|
+
@pred = NinjaModel::Predicate.new(:var, :ge)
|
6
|
+
end
|
7
|
+
|
8
|
+
it { @pred.has_value?.should be_false }
|
9
|
+
it 'should have value after update' do
|
10
|
+
@pred.value = 'value'
|
11
|
+
@pred.has_value?.should be_true
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NinjaModel::QueryMethods do
|
4
|
+
before(:each) do
|
5
|
+
@model = mock('model')
|
6
|
+
@attribute = NinjaModel::Attribute.new(:valid, :integer, @model, {})
|
7
|
+
@model.stubs(:model_attributes).returns({:valid => @attribute}.with_indifferent_access)
|
8
|
+
@rel = NinjaModel::Relation.new(@model)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'order' do
|
12
|
+
it 'should update the relations\'s order_values' do
|
13
|
+
new_rel = @rel.order(:new_order)
|
14
|
+
new_rel.ordering.first.should eql(:new_order)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'where' do
|
19
|
+
it 'should update the relation\'s where_values' do
|
20
|
+
new_rel = @rel.where(:valid => 2)
|
21
|
+
new_rel.predicates.first.should be_kind_of(NinjaModel::Predicate)
|
22
|
+
new_rel.predicates.first.value.should eql(2)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe 'limit' do
|
27
|
+
it 'should update the relation\'s limit' do
|
28
|
+
new_rel = @rel.limit(5)
|
29
|
+
new_rel.limit_value.should eql(5)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe 'build_predicates' do
|
34
|
+
it 'should reject a string' do
|
35
|
+
lambda { @rel.send :build_predicates, 'foo < 1' }.should raise_error(ArgumentError)
|
36
|
+
end
|
37
|
+
|
38
|
+
describe 'with an array' do
|
39
|
+
it 'should return an array of NinjaModel::Predicates' do
|
40
|
+
res = @rel.send :build_predicates, [{:valid => 1}]
|
41
|
+
res.should be_kind_of(Array)
|
42
|
+
res.first.should be_kind_of(NinjaModel::Predicate)
|
43
|
+
res.first.value.should eql(1)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
describe 'with a hash' do
|
47
|
+
it 'should handle a valid symbol' do
|
48
|
+
res = @rel.send :build_predicates, {:valid => 1}
|
49
|
+
res.should be_kind_of(Array)
|
50
|
+
res.first.should be_kind_of(NinjaModel::Predicate)
|
51
|
+
res.first.value.should eql(1)
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should reject an invalid symbol' do
|
55
|
+
lambda { @rel.send :build_predicates, {:invalid => 2} }.should raise_error(ArgumentError)
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should handle a predicate' do
|
59
|
+
rel = NinjaModel::Predicate.new(:valid, :eq)
|
60
|
+
res = @rel.send :build_predicates, {rel => 1}
|
61
|
+
res.should be_kind_of(Array)
|
62
|
+
res.first.should be_kind_of(NinjaModel::Predicate)
|
63
|
+
res.first.value.should eql(1)
|
64
|
+
end
|
65
|
+
it 'should reject an unkrecognized key' do
|
66
|
+
lambda { @rel.send :build_predicates, {'bad' => 12} }.should raise_error(ArgumentError)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should reject an unprocessable argument' do
|
71
|
+
lambda { @rel.send :build_predicates, 5 }.should raise_error(ArgumentError)
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NinjaModel::Relation do
|
4
|
+
describe 'with an instance' do
|
5
|
+
before(:each) do
|
6
|
+
@model = mock('NinjaModel')
|
7
|
+
@model.stubs(:adapter => stub('NinjaAdapter', :read => 'object_list'))
|
8
|
+
@rel = NinjaModel::Relation.new(@model)
|
9
|
+
end
|
10
|
+
it { @rel.should respond_to(:klass) }
|
11
|
+
it { @rel.should respond_to(:loaded?) }
|
12
|
+
it { @rel.should respond_to(:limit_value) }
|
13
|
+
it { @rel.limit_value.should be_nil }
|
14
|
+
it { @rel.should respond_to(:offset_value) }
|
15
|
+
it { @rel.offset_value.should be_nil }
|
16
|
+
it { @rel.should respond_to(:ordering) }
|
17
|
+
it { @rel.ordering.should eql([]) }
|
18
|
+
it { @rel.should respond_to(:predicates) }
|
19
|
+
it { @rel.predicates.should eql([]) }
|
20
|
+
it { @rel.loaded?.should be_false }
|
21
|
+
|
22
|
+
it 'should try to read when to_a is called' do
|
23
|
+
@rel.to_a.should eql('object_list')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NinjaModel::Scoping do
|
4
|
+
before(:each) do
|
5
|
+
@klass = Class.new
|
6
|
+
@klass.send :include, NinjaModel::Scoping
|
7
|
+
@relation = mock('Relation') do
|
8
|
+
stubs(:apply_finder_options).returns(self)
|
9
|
+
end
|
10
|
+
@klass.stubs(:relation).returns(@relation)
|
11
|
+
@klass.stubs(:current_scoped_methods).returns(nil)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'scoped' do
|
15
|
+
it 'should return a relation when no options are sent' do
|
16
|
+
@klass.scoped.should be_instance_of(@relation.class)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should accept scoping options' do
|
20
|
+
@klass.scoped(:conditions => {:key => 'value'}).should be_instance_of(@relation.class)
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'scopes' do
|
26
|
+
it 'should return an empty hash when no scopes have been set' do
|
27
|
+
@klass.scopes.should eql({})
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should return existing scopes' do
|
31
|
+
scopes = mock('scopes')
|
32
|
+
@klass.stubs(:read_inheritable_attribute).returns(scopes)
|
33
|
+
@klass.scopes.should eql(scopes)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'defining a scope' do
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'test/unit/assertions'
|
2
|
+
require 'active_model/lint'
|
3
|
+
|
4
|
+
shared_examples_for "ActiveModel" do
|
5
|
+
include Test::Unit::Assertions
|
6
|
+
include ActiveModel::Lint::Tests
|
7
|
+
|
8
|
+
ActiveModel::Lint::Tests.public_instance_methods.map { |m| m.to_s }.grep(/^test/).each do |m|
|
9
|
+
example m.gsub('_', '') do
|
10
|
+
send m
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def model
|
15
|
+
subject
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,214 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ninja-model
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 2
|
10
|
+
version: 0.4.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Josh Williams
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-03-30 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rails
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - "="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 1
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 0
|
33
|
+
- 3
|
34
|
+
version: 3.0.3
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rspec
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 13
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
- 0
|
49
|
+
- 1
|
50
|
+
version: 2.0.1
|
51
|
+
type: :development
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: mocha
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 43
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 9
|
65
|
+
- 8
|
66
|
+
version: 0.9.8
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rcov
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 41
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
- 9
|
81
|
+
- 9
|
82
|
+
version: 0.9.9
|
83
|
+
type: :development
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: cucumber
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 51
|
94
|
+
segments:
|
95
|
+
- 0
|
96
|
+
- 9
|
97
|
+
- 4
|
98
|
+
version: 0.9.4
|
99
|
+
type: :development
|
100
|
+
version_requirements: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: nokogiri
|
103
|
+
prerelease: false
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
hash: 15
|
110
|
+
segments:
|
111
|
+
- 1
|
112
|
+
- 4
|
113
|
+
- 4
|
114
|
+
version: 1.4.4
|
115
|
+
type: :development
|
116
|
+
version_requirements: *id006
|
117
|
+
description: Write a gem description
|
118
|
+
email: theprime@codingprime.com
|
119
|
+
executables: []
|
120
|
+
|
121
|
+
extensions: []
|
122
|
+
|
123
|
+
extra_rdoc_files: []
|
124
|
+
|
125
|
+
files:
|
126
|
+
- lib/ninja_model.rb
|
127
|
+
- lib/generators/ninja_model.rb
|
128
|
+
- lib/generators/ninja_model/model/model_generator.rb
|
129
|
+
- lib/generators/ninja_model/model/templates/model.rb
|
130
|
+
- lib/generators/ninja_model/scaffold/scaffold_generator.rb
|
131
|
+
- lib/ninja-model.rb
|
132
|
+
- lib/ninja_model/configuration.rb
|
133
|
+
- lib/ninja_model/reflection.rb
|
134
|
+
- lib/ninja_model/associations/has_many_association.rb
|
135
|
+
- lib/ninja_model/associations/ninja_model_proxy.rb
|
136
|
+
- lib/ninja_model/associations/has_one_association.rb
|
137
|
+
- lib/ninja_model/associations/association_proxy.rb
|
138
|
+
- lib/ninja_model/associations/active_record_proxy.rb
|
139
|
+
- lib/ninja_model/associations/belongs_to_association.rb
|
140
|
+
- lib/ninja_model/version.rb
|
141
|
+
- lib/ninja_model/attributes.rb
|
142
|
+
- lib/ninja_model/associations.rb
|
143
|
+
- lib/ninja_model/log_subscriber.rb
|
144
|
+
- lib/ninja_model/persistence.rb
|
145
|
+
- lib/ninja_model/callbacks.rb
|
146
|
+
- lib/ninja_model/predicate.rb
|
147
|
+
- lib/ninja_model/core_ext/symbol.rb
|
148
|
+
- lib/ninja_model/errors.rb
|
149
|
+
- lib/ninja_model/adapters.rb
|
150
|
+
- lib/ninja_model/base.rb
|
151
|
+
- lib/ninja_model/identity.rb
|
152
|
+
- lib/ninja_model/relation.rb
|
153
|
+
- lib/ninja_model/adapters/adapter_specification.rb
|
154
|
+
- lib/ninja_model/adapters/abstract_adapter.rb
|
155
|
+
- lib/ninja_model/adapters/adapter_manager.rb
|
156
|
+
- lib/ninja_model/adapters/adapter_pool.rb
|
157
|
+
- lib/ninja_model/validation.rb
|
158
|
+
- lib/ninja_model/relation/finder_methods.rb
|
159
|
+
- lib/ninja_model/relation/query_methods.rb
|
160
|
+
- lib/ninja_model/relation/spawn_methods.rb
|
161
|
+
- lib/ninja_model/railtie.rb
|
162
|
+
- lib/ninja_model/scoping.rb
|
163
|
+
- spec/spec_helper.rb
|
164
|
+
- spec/support/active_model_lint.rb
|
165
|
+
- spec/ninja_model_spec.rb
|
166
|
+
- spec/ninja_model/identity_spec.rb
|
167
|
+
- spec/ninja_model/attributes_spec.rb
|
168
|
+
- spec/ninja_model/base_spec.rb
|
169
|
+
- spec/ninja_model/predicate_spec.rb
|
170
|
+
- spec/ninja_model/persistence_spec.rb
|
171
|
+
- spec/ninja_model/relation_spec.rb
|
172
|
+
- spec/ninja_model/adapters/adapter_pool_spec.rb
|
173
|
+
- spec/ninja_model/adapters_spec.rb
|
174
|
+
- spec/ninja_model/query_methods_spec.rb
|
175
|
+
- spec/ninja_model/scoping_spec.rb
|
176
|
+
- Rakefile
|
177
|
+
- Gemfile
|
178
|
+
- README.md
|
179
|
+
has_rdoc: true
|
180
|
+
homepage: http://github.com/t3hpr1m3/ninja-model.git
|
181
|
+
licenses: []
|
182
|
+
|
183
|
+
post_install_message:
|
184
|
+
rdoc_options: []
|
185
|
+
|
186
|
+
require_paths:
|
187
|
+
- lib
|
188
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
189
|
+
none: false
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
hash: 3
|
194
|
+
segments:
|
195
|
+
- 0
|
196
|
+
version: "0"
|
197
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
198
|
+
none: false
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
hash: 3
|
203
|
+
segments:
|
204
|
+
- 0
|
205
|
+
version: "0"
|
206
|
+
requirements: []
|
207
|
+
|
208
|
+
rubyforge_project: ninja-model
|
209
|
+
rubygems_version: 1.3.7
|
210
|
+
signing_key:
|
211
|
+
specification_version: 3
|
212
|
+
summary: Write a gem summary
|
213
|
+
test_files: []
|
214
|
+
|