arusarka-dynamic-active-resource 0.2.3 → 0.2.4

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.
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ class DummyAssociationClass
4
+ extend DynamicActiveResource::Associations
5
+ end
6
+
7
+ describe 'DynamicActiveResource::AssociationClass' do
8
+ after(:each) do
9
+ DummyAssociationClass.instance_variable_set(:@associations, nil)
10
+ end
11
+
12
+ it "should set a has_many association properly" do
13
+ class DummyAssociationClass
14
+ has_many :dummies
15
+ end
16
+ associations = DummyAssociationClass.instance_variable_get(:@associations)
17
+ associations.first.should be_instance_of(DynamicActiveResource::Associations::HasMany)
18
+ end
19
+
20
+ it "should set a belongs_to association properly" do
21
+ class DummyAssociationClass
22
+ belongs_to :test
23
+ end
24
+ associations = DummyAssociationClass.instance_variable_get(:@associations)
25
+ associations.first.should be_instance_of(DynamicActiveResource::Associations::BelongsTo)
26
+ end
27
+ end
@@ -0,0 +1,10 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe 'DynamicActiveResource::Base' do
4
+ it "should extend the subclass properly" do
5
+ DynamicActiveResource::CommonClassMethods.should_receive(:extended)
6
+ DynamicActiveResource::Associations.should_receive(:extended)
7
+ class Child < DynamicActiveResource::Base
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ class Resource
4
+ include DynamicActiveResource::CommonDynamicClassInstanceMethods
5
+ end
6
+
7
+ describe 'DynamicActiveResource::CommonDynamicClassInstanceMethods' do
8
+ it "should find the resource identifier properly" do
9
+ resource = Resource.new
10
+ resource.should_receive(:id).and_return(1)
11
+ resource.resource_identifier.should == 1
12
+ end
13
+
14
+ it "should be able to detect a association method properly" do
15
+ resource = Resource.new
16
+ association = DynamicActiveResource::Associations::Base.new :person
17
+ Resource.instance_variable_set(:@associations, [association])
18
+ resource.send(:association_method?, 'person').should == true
19
+ Resource.instance_variable_set(:@associations, nil)
20
+ end
21
+ end
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe 'DynamicActiveResource::Version' do
4
+ it "should return the proper version" do
5
+ DynamicActiveResource::Version::to_s.should == '0.2.1'
6
+ end
7
+ end
@@ -0,0 +1,24 @@
1
+ require "../../lib/dynamic_active_resource"
2
+
3
+ class Card < DynARBase
4
+ module ClassMethods
5
+ def find_without_pagination(*args)
6
+ scope = args.slice!(0)
7
+ options = args.slice!(0) || {}
8
+ options[:params] ||= {}
9
+ options[:params].merge!({:page => 'all'})
10
+
11
+ # call ActiveResource::Base::find with proper options
12
+ find(scope, options)
13
+ end
14
+ end
15
+ end
16
+
17
+ Card.site = 'http://localhost:9090/projects/api_test'
18
+ Card.user = 'testuser'
19
+ Card.password = 'testuser'
20
+
21
+ puts Card.find_without_pagination(:all).size
22
+
23
+ Card.site = 'http://localhost:9090/projects/agile_hybrib_project'
24
+ puts Card.find_without_pagination(:all).size
@@ -0,0 +1,44 @@
1
+ require File.dirname(__FILE__) + '/../../lib/dynamic_active_resource'
2
+
3
+ class Card < DynARBase
4
+ belongs_to :project
5
+ module DynamicClassSingletonMethods
6
+ def find_without_pagination(*args)
7
+ scope = args.slice!(0)
8
+ options = args.slice!(0) || {}
9
+ options[:params] ||= {}
10
+ options[:params].merge!({:page => 'all'})
11
+ # call ActiveResource::Base::find with proper options
12
+ find(scope, options)
13
+ end
14
+ end
15
+ end
16
+
17
+ class Project < DynARBase
18
+ has_many :cards
19
+ module DynamicClassInstanceMethods
20
+ def resource_identifier
21
+ identifier()
22
+ end
23
+ end
24
+ end
25
+
26
+ Project.site = 'http://localhost:9090/'
27
+ Project.user = 'testuser'
28
+ Project.password = 'testuser'
29
+ proj = Project.find('api_test')
30
+
31
+ puts proj.resource_identifier
32
+
33
+ # association = proj.class.instance_variable_get(:@children_associations).detect { |association| association[:method] }
34
+ # card_class = eval(association[:class])
35
+ # puts proj.send(:child_association_method?, 'cards')
36
+
37
+ cards = proj.cards
38
+ # puts cards.send(:create_resource_class).collection_path
39
+ puts cards.size
40
+ # puts cards[0].class.instance_variable_get(:@associations)
41
+ proj1 = cards[0].project
42
+ puts proj1.identifier
43
+ #
44
+ puts proj1.cards.size
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arusarka-dynamic-active-resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - asur
@@ -41,6 +41,12 @@ files:
41
41
  - lib/dynamic_active_resource/helpers.rb
42
42
  - lib/dynamic_active_resource/version.rb
43
43
  - lib/dynamic_active_resource.rb
44
+ - test/integration/test_dynamic_active_resource.rb
45
+ - test/integration/test_dynamic_active_resource2.rb
46
+ - spec/dynamic_active_resource/associations_spec.rb
47
+ - spec/dynamic_active_resource/base_spec.rb
48
+ - spec/dynamic_active_resource/common_dynamic_class_instance_methods_spec.rb
49
+ - spec/dynamic_active_resource/version_spec.rb
44
50
  - README
45
51
  - History.txt
46
52
  - init.rb