big_door 0.0.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 (73) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +72 -0
  3. data/README.rdoc +170 -0
  4. data/Rakefile +32 -0
  5. data/autotest/discover.rb +1 -0
  6. data/big_door.gemspec +56 -0
  7. data/bin/example.rb +93 -0
  8. data/features/resources/attribute.feature +41 -0
  9. data/features/resources/currency_type.feature +12 -0
  10. data/features/resources/end_user.feature +92 -0
  11. data/features/resources/named_award_collection.feature +42 -0
  12. data/features/resources/named_good_collection.feature +40 -0
  13. data/features/resources/named_level_collection.feature +44 -0
  14. data/features/resources/url.feature +41 -0
  15. data/features/step_definitions/resources_steps.rb +370 -0
  16. data/features/support/env.rb +9 -0
  17. data/lib/big_door/attribute.rb +21 -0
  18. data/lib/big_door/award.rb +24 -0
  19. data/lib/big_door/client.rb +281 -0
  20. data/lib/big_door/currency.rb +26 -0
  21. data/lib/big_door/currency_balance.rb +27 -0
  22. data/lib/big_door/currency_type.rb +29 -0
  23. data/lib/big_door/end_user.rb +32 -0
  24. data/lib/big_door/good.rb +32 -0
  25. data/lib/big_door/leaderboard.rb +41 -0
  26. data/lib/big_door/level.rb +25 -0
  27. data/lib/big_door/named_award.rb +24 -0
  28. data/lib/big_door/named_award_collection.rb +21 -0
  29. data/lib/big_door/named_good.rb +24 -0
  30. data/lib/big_door/named_good_collection.rb +22 -0
  31. data/lib/big_door/named_level.rb +26 -0
  32. data/lib/big_door/named_level_collection.rb +23 -0
  33. data/lib/big_door/named_transaction.rb +21 -0
  34. data/lib/big_door/named_transaction_group.rb +74 -0
  35. data/lib/big_door/profile.rb +28 -0
  36. data/lib/big_door/resource.rb +204 -0
  37. data/lib/big_door/resource_end_user.rb +84 -0
  38. data/lib/big_door/resource_with_association.rb +37 -0
  39. data/lib/big_door/resource_with_parent.rb +43 -0
  40. data/lib/big_door/url.rb +21 -0
  41. data/lib/big_door.rb +40 -0
  42. data/script/console +10 -0
  43. data/script/destroy +14 -0
  44. data/script/generate +14 -0
  45. data/spec/big_door/attribute_spec.rb +18 -0
  46. data/spec/big_door/award_spec.rb +19 -0
  47. data/spec/big_door/client_spec.rb +163 -0
  48. data/spec/big_door/currency_balance_spec.rb +14 -0
  49. data/spec/big_door/currency_spec.rb +81 -0
  50. data/spec/big_door/currency_type_spec.rb +21 -0
  51. data/spec/big_door/end_user_spec.rb +23 -0
  52. data/spec/big_door/good_spec.rb +14 -0
  53. data/spec/big_door/leaderboard_spec.rb +15 -0
  54. data/spec/big_door/level_spec.rb +19 -0
  55. data/spec/big_door/named_award_collection_spec.rb +23 -0
  56. data/spec/big_door/named_award_spec.rb +23 -0
  57. data/spec/big_door/named_good_collection_spec.rb +23 -0
  58. data/spec/big_door/named_good_spec.rb +23 -0
  59. data/spec/big_door/named_level_collection_spec.rb +23 -0
  60. data/spec/big_door/named_level_spec.rb +24 -0
  61. data/spec/big_door/named_transaction_group_spec.rb +29 -0
  62. data/spec/big_door/named_transaction_spec.rb +23 -0
  63. data/spec/big_door/profile_spec.rb +19 -0
  64. data/spec/big_door/resource_end_user_spec.rb +22 -0
  65. data/spec/big_door/resource_spec.rb +22 -0
  66. data/spec/big_door/resource_with_association_spec.rb +23 -0
  67. data/spec/big_door/resource_with_parent_spec.rb +22 -0
  68. data/spec/big_door/url_spec.rb +23 -0
  69. data/spec/spec.opts +1 -0
  70. data/spec/spec_helper.rb +17 -0
  71. data/tasks/cucumber.rake +5 -0
  72. data/tasks/rspec.rake +29 -0
  73. metadata +263 -0
@@ -0,0 +1,74 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides NamedTransactionGroup Resource object
4
+ # corresponding to /named_transaction_group BigDoor API end point
5
+ #
6
+ class NamedTransactionGroup < ResourceWithAssociation
7
+ ##
8
+ # Initialize new NamedTransaction object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "NamedTransactionGroup init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'end_user_cap' => 0,
17
+ 'end_user_cap_interval' => 0,
18
+ }
19
+ default_values.merge!( hash )
20
+ $log.debug( "NamedTransactionGroup default_values = #{default_values.inspect}")
21
+ super( default_values )
22
+ end
23
+
24
+ ##
25
+ # Executes this NamedTransaction
26
+ #
27
+ # @param [String] end_user_login
28
+ # String representing end_use_login
29
+ #
30
+ # @param [Hash] payload
31
+ # Hash to be converted to HTTP POST form-url-encoded body
32
+ #
33
+ # @param [BigDoor::Client] client
34
+ # Initialized BigDoor::Client object
35
+ #
36
+ # @return [Hash] Decoded JSON response if any
37
+ #
38
+ def execute( end_user_login, payload, client )
39
+ $log.debug('execute transaction');
40
+
41
+ # FIXME check for self.resource_id defined
42
+ # FIXME check end_user_login
43
+ uri = sprintf '%s/%s/execute/%s',
44
+ end_point,
45
+ self.resource_id,
46
+ end_user_login
47
+
48
+ $log.debug( sprintf 'uri = %s', uri )
49
+ payload ||= { 'verbosity' => '6' }
50
+ payload['verbosity'] = 9 unless payload['verbosity']
51
+ result = client.post( uri , { 'format' => 'json'}, payload )
52
+ $log.debug(sprintf 'result = %s', result.inspect );
53
+ end
54
+
55
+ ##
56
+ # Assocaiate this NamedTransactionGroup with NamedTransaction
57
+ #
58
+ # @param [BigDoor::NamedTransaction] transaction
59
+ # NamedTransaction to be associated with
60
+ #
61
+ # @param [BigDoor::Client] client
62
+ # Initialized BigDoor::Client object
63
+ #
64
+ # @param [Fixnum] primary
65
+ # Indicates whether assocatiate NamedTransaction is primary in this
66
+ # Named Transaction Group
67
+ #
68
+ # @return [Hash] Decoded JSON response if any
69
+ #
70
+ def associate_with( transaction, client, primary = 1)
71
+ super( transaction, client, {'named_transaction_is_primary' => primary } )
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,28 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides Profile Resource object
4
+ # corresponding to /end_user/{id}/profile BigDoor API end point
5
+ #
6
+ class Profile < ResourceEndUser
7
+ ##
8
+ # Initialize new Profile object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "Profile init with hash = #{hash.inspect}")
15
+ default_values = {
16
+ 'provider' => 'publisher',
17
+ 'email' => '',
18
+ 'first_name' => '',
19
+ 'last_name' => '',
20
+ 'display_name' => '',
21
+ 'profile_photo' => '',
22
+ }
23
+ default_values.merge!( hash )
24
+ $log.debug( "Profile default_values = #{default_values.inspect}")
25
+ super( default_values )
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,204 @@
1
+ require 'ostruct'
2
+ require 'logger'
3
+
4
+ module BigDoor
5
+ class Resource < OpenStruct
6
+ ##
7
+ #
8
+ # This class provides base class for Resource objects
9
+ #
10
+
11
+
12
+ ##
13
+ # Initialize new Resource object with optional Hash
14
+ #
15
+ # @param [Hash] hash
16
+ # Optional fields to assign to object
17
+ #
18
+ def initialize( hash = {})
19
+ $log.debug( "Resource init with hash = #{hash.inspect}")
20
+ default_values = {
21
+ 'pub_title' => '',
22
+ 'pub_description' => '',
23
+ 'end_user_title' => '',
24
+ 'end_user_description' => '',
25
+ }
26
+ default_values.merge!( hash )
27
+ $log.debug( "Resource default_values = #{default_values.inspect}")
28
+
29
+ if default_values.key?('id')
30
+ default_values['resource_id'] = default_values['id']
31
+ default_values.delete('id')
32
+ end
33
+ super( default_values )
34
+ end
35
+
36
+ ##
37
+ # Derieve API end point form Class name
38
+ #
39
+ # @param [String] Class name
40
+ #
41
+ # @return [String] resource name
42
+ #
43
+ def self.end_point_from_classname( name )
44
+ # FIXME should fail if name = Resource
45
+ $log.debug("end_point_from_classname called with name = #{name}")
46
+ if name =~ /BigDoor::(.+)$/
47
+ resource_name = $1
48
+
49
+ $log.debug("resource_name = #{resource_name}")
50
+
51
+ resource_name.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2');
52
+ resource_name.gsub!(/([a-z\d])([A-Z])/, '\1_\2');
53
+ # FIXME if no match
54
+ resource_name.downcase!
55
+
56
+ else
57
+ # FIXME if no match
58
+ end
59
+ $log.debug("resource_name = #{resource_name}")
60
+ resource_name
61
+ end
62
+
63
+ ##
64
+ # Derieve API end point form Class name
65
+ #
66
+ # @return [String] resource name
67
+ #
68
+ def end_point
69
+ Resource.end_point_from_classname( self.class.name )
70
+ end
71
+
72
+ ##
73
+ # Derieve API end point form Class name
74
+ #
75
+ # @return [String] resource name
76
+ #
77
+ def self.end_point
78
+ end_point_from_classname( self.name )
79
+ end
80
+
81
+ ##
82
+ # Get Resource id for Resource Object. To be overriden in child classes.
83
+ #
84
+ # @return [String] resource ID
85
+ #
86
+ def get_id
87
+ self.resource_id
88
+ end
89
+
90
+ ##
91
+ # Convert object content to Hash
92
+ #
93
+ # @return [Hash] Object fields
94
+ #
95
+ def instance_to_payload
96
+ payload = {}
97
+ @table.each do |key, value|
98
+ payload[key] = value
99
+ end
100
+ payload
101
+ end
102
+
103
+ ##
104
+ # Sets object fields to values from response Hash
105
+ #
106
+ # @param [Hash] response
107
+ # Hash representing decoded JSON response from API
108
+ #
109
+ # @return nothing
110
+ #
111
+ def response_to_instance( response )
112
+ $log.debug('update instance from response')
113
+ response.each do |key, value|
114
+ key = 'resource_id' if key == 'id'
115
+ self.instance_eval("self.#{key} = \'#{value}\'")
116
+ $log.debug(sprintf "%s = %s", key, self.instance_eval("self.#{key}") )
117
+ end
118
+ end
119
+
120
+ ##
121
+ # Saves Resource object. If object has +id+ attribute defined than
122
+ # +PUT+ method is used, otherwise +POST+ is used.
123
+ #
124
+ # @param [BigDoor::Client] client
125
+ # Initialized BigDoor::Client object
126
+ #
127
+ # @return nothing
128
+ #
129
+ def save( client )
130
+ uri = end_point
131
+ $log.debug( "end_point = #{uri}")
132
+ payload = instance_to_payload
133
+ if payload.key?(:resource_id)
134
+ $log.debug('PUT');
135
+ response = client.put( sprintf("%s/%s", uri, self.get_id ), { 'format' => 'json' }, payload )
136
+ else
137
+ $log.debug('POST');
138
+ response = client.post( "#{uri}", { 'format' => 'json' }, payload )
139
+ end
140
+ response_to_instance( response )
141
+ end
142
+
143
+ ##
144
+ # Loads Resource object identified by optional ID parameter or by
145
+ # object own resource_id
146
+ #
147
+ # @param [BigDoor::Client] client
148
+ # Initialized BigDoor::Client object
149
+ #
150
+ # @param [String] id
151
+ # Object resource ID
152
+ #
153
+ # @return nothing
154
+ #
155
+ def load( client, id = nil)
156
+ id = self.get_id unless id
157
+ raise ArgumentError.new('Pass id as param or set resource_id for object ') unless id
158
+ $log.debug('GET');
159
+ response = client.get( sprintf("%s/%s", end_point, id), { 'format' => 'json' })
160
+ response_to_instance( response )
161
+ end
162
+
163
+ ##
164
+ # Deletes Resource object identified by optional ID parameter or by
165
+ # object own resource_id
166
+ #
167
+ # @param [BigDoor::Client] client
168
+ # Initialized BigDoor::Client object
169
+ #
170
+ # @param [String] id
171
+ # Object resource ID
172
+ #
173
+ # @return nothing
174
+ #
175
+ def delete( client, id = nil)
176
+ # FIXME if id defined - should use class method
177
+ id = self.resource_id unless id
178
+ # FIXME if no id defined
179
+ client.delete( (sprintf "%s/%s", end_point, id), { 'format' => 'json' })
180
+ self.resource_id = nil
181
+ end
182
+
183
+ ##
184
+ # Loads all Resource objects by this type
185
+ #
186
+ # @param [BigDoor::Client] client
187
+ # Initialized BigDoor::Client object
188
+ #
189
+ # @return [Array] Array of BigDoor::Resource derieved objects
190
+ #
191
+ def self.all( client )
192
+ uri = end_point
193
+ $log.debug( "end_point = #{uri}")
194
+ response = client.get( uri, { 'format' => 'json' } )
195
+ $log.debug( "response to all = #{response}")
196
+ allobj = response.map{ |obj|
197
+ $log.debug("obj = #{obj.inspect}")
198
+ self.new(obj)
199
+ }
200
+ $log.debug( "allobj = #{allobj.inspect}")
201
+ allobj
202
+ end
203
+ end
204
+ end
@@ -0,0 +1,84 @@
1
+ module BigDoor
2
+
3
+ #
4
+ # This module provides Resource class with EndUser Parent
5
+ #
6
+
7
+ class ResourceEndUser < Resource
8
+ ##
9
+ # Calculates Resource object API end point from its class name using
10
+ # parent_end_point and parent_id_attr (possibly overriden in child classes)
11
+ #
12
+ def end_point
13
+ $log.debug("parent_end_point = #{ResourceEndUser.parent_end_point}")
14
+ $log.debug("parent_id_attr = #{parent_id_attr}")
15
+ $log.debug("parent_id_attr value = #{self.instance_eval("self.#{parent_id_attr}")}")
16
+
17
+ # FIXME if parent_id_attr empty
18
+ # FIXME if no self.#{parent_id_attr}
19
+ ep = sprintf "%s/%s/%s",
20
+ ResourceEndUser.parent_end_point,
21
+ self.instance_eval("self.#{parent_id_attr}"),
22
+ Resource.end_point_from_classname( self.class.name )
23
+ ep
24
+ end
25
+
26
+ ##
27
+ # Calculates Resource object API end point from its class name using
28
+ # parent_end_point and parent_id_attr (possibly overriden in child classes)
29
+ #
30
+ def self.end_point( username )
31
+ # FIXME code duplication
32
+ $log.debug("parent_end_point = #{ResourceEndUser.parent_end_point}")
33
+
34
+ # FIXME if parent_id_attr empty
35
+ # FIXME if no self.#{parent_id_attr}
36
+ ep = sprintf "%s/%s/%s",
37
+ ResourceEndUser.parent_end_point,
38
+ username,
39
+ Resource.end_point_from_classname( self.name )
40
+ ep
41
+ end
42
+
43
+ ##
44
+ # Loads all Resource objects by this type
45
+ #
46
+ # @param [String] username
47
+ # end_user_login to be used as base API end point
48
+ #
49
+ # @param [BigDoor::Client] client
50
+ # Initialized BigDoor::Client object
51
+ #
52
+ # @return [Array] Array of BigDoor::Resource derieved objects
53
+ #
54
+ def self.all( username, client )
55
+ # FIXME code duplication
56
+ uri = self.end_point( username )
57
+ $log.debug( "end_point = #{uri}")
58
+ response = client.get( uri, { 'format' => 'json' } )
59
+ $log.debug( "response to all = #{response}")
60
+ allobj = response.map{ |obj|
61
+ $log.debug("obj = #{obj.inspect}")
62
+ self.new(obj)
63
+ }
64
+ $log.debug( "allobj = #{allobj.inspect}")
65
+ allobj
66
+ end
67
+
68
+ ##
69
+ # Gives default base parent_end_point for object.
70
+ # Can be overriden in inherited classes.
71
+ #
72
+ def self.parent_end_point
73
+ 'end_user'
74
+ end
75
+
76
+ ##
77
+ # Gives default parent_id attribute name for object.
78
+ # Can be overriden in inherited classes.
79
+ #
80
+ def parent_id_attr
81
+ 'end_user_login'
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,37 @@
1
+ module BigDoor
2
+
3
+ #
4
+ # This module provides Resource class with Association
5
+ #
6
+
7
+ class ResourceWithAssociation < Resource
8
+ ##
9
+ # Assocaiate this Resource with another Resource
10
+ #
11
+ # @param [BigDoor::Resource] resource
12
+ # Resource to be associated with. See BigDoor documentation for list
13
+ # of objects which allow association
14
+ #
15
+ # @param [BigDoor::Client] client
16
+ # Initialized BigDoor::Client object
17
+ #
18
+ # @param [Hash] payload
19
+ # Hash to be converted to HTTP POST form-url-encoded body
20
+ #
21
+ # @return [Hash] Decoded JSON response if any
22
+ #
23
+ def associate_with(resource, client, payload = {})
24
+ $log.debug('associate_with');
25
+
26
+ uri = sprintf '%s/%s/%s/%s',
27
+ end_point,
28
+ self.resource_id,
29
+ resource.resource_name,
30
+ resource.resource_id
31
+
32
+ $log.debug( sprintf 'uri = %s', uri )
33
+ result = client.post( uri , { 'format' => 'json'}, payload )
34
+ $log.debug(sprintf 'result = %s', result.inspect );
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,43 @@
1
+ module BigDoor
2
+
3
+ #
4
+ # This module provides Resource class with Parent
5
+ #
6
+
7
+ class ResourceWithParent < Resource
8
+ ##
9
+ # Calculates Resource object API end point from its class name using
10
+ # parent_end_point and parent_id_attr (possibly overriden in child classes)
11
+ #
12
+ def end_point
13
+ $log.debug("parent_end_point = #{parent_end_point}")
14
+ $log.debug("parent_id_attr = #{parent_id_attr}")
15
+ $log.debug("parent_id_attr value = #{self.instance_eval("self.#{parent_id_attr}")}")
16
+
17
+ # FIXME if parent_id_attr empty
18
+ # FIXME if no self.#{parent_id_attr}
19
+ ep = sprintf "%s/%s/%s",
20
+ parent_end_point,
21
+ self.instance_eval("self.#{parent_id_attr}"),
22
+ Resource.end_point_from_classname( self.class.name )
23
+ ep
24
+ end
25
+
26
+ ##
27
+ # Gives default base parent_end_point for object.
28
+ # Can be overriden in inherited classes.
29
+ #
30
+ def parent_end_point
31
+ resource_name = Resource.end_point_from_classname( self.class.name )
32
+ "#{resource_name}_collection"
33
+ end
34
+
35
+ ##
36
+ # Gives default parent_id attribute name for object.
37
+ # Can be overriden in inherited classes.
38
+ #
39
+ def parent_id_attr
40
+ "#{parent_end_point}_id"
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,21 @@
1
+ module BigDoor
2
+ #
3
+ # This module provides URL Resource object
4
+ # corresponding to /url BigDoor API end point
5
+ #
6
+ class URL < ResourceWithAssociation
7
+ ##
8
+ # Initialize new URL object with optional Hash
9
+ #
10
+ # @param [Hash] hash
11
+ # Optional fields to assign to object
12
+ #
13
+ def initialize( hash = {} )
14
+ $log.debug( "URL init with hash = #{hash.inspect}")
15
+ default_values = { }
16
+ default_values.merge!( hash )
17
+ $log.debug( "URL default_values = #{default_values.inspect}")
18
+ super( default_values )
19
+ end
20
+ end
21
+ end
data/lib/big_door.rb ADDED
@@ -0,0 +1,40 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ require 'big_door/client'
5
+ require 'big_door/resource'
6
+ require 'big_door/resource_with_association'
7
+ require 'big_door/resource_with_parent'
8
+ require 'big_door/resource_end_user'
9
+
10
+ require 'big_door/attribute'
11
+ require 'big_door/award'
12
+ require 'big_door/currency'
13
+ require 'big_door/currency_balance'
14
+ require 'big_door/currency_type'
15
+ require 'big_door/end_user'
16
+ require 'big_door/good'
17
+ require 'big_door/leaderboard'
18
+ require 'big_door/level'
19
+ require 'big_door/named_award'
20
+ require 'big_door/named_award_collection'
21
+ require 'big_door/named_good'
22
+ require 'big_door/named_good_collection'
23
+ require 'big_door/named_level'
24
+ require 'big_door/named_level_collection'
25
+ require 'big_door/named_transaction'
26
+ require 'big_door/named_transaction_group'
27
+ require 'big_door/profile'
28
+ require 'big_door/url'
29
+
30
+ $log = ENV['BIGDOOR_DEBUG'] ? Logger.new('debug.log') : Logger.new( STDERR )
31
+ $log.level = ENV['BIGDOOR_DEBUG'] ? Logger::DEBUG : Logger::ERROR
32
+
33
+ $log.datetime_format = "%Y-%m-%d %H:%M:%S "
34
+ $log.debug( '=======================')
35
+ $log.debug( $log.datetime_format)
36
+
37
+
38
+ module BigDoor
39
+ VERSION = '0.0.1'
40
+ end
data/script/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
+
5
+ libs = " -r irb/completion"
6
+ # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
+ # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
+ libs << " -r #{File.dirname(__FILE__) + '/../lib/bigdoorkit.rb'}"
9
+ puts "Loading bigdoorkit gem"
10
+ exec "#{irb} #{libs} --simple-prompt"
data/script/destroy ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/destroy'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Destroy.new.run(ARGV)
data/script/generate ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/generate'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Generate.new.run(ARGV)
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ module BigDoor
4
+ describe Attribute do
5
+ before(:each) do
6
+ @client = BigDoor::Client.new( TEST_APP_SECRET, TEST_APP_KEY )
7
+ end
8
+ context "Attribute class" do
9
+ it "Should respond to :all" do
10
+ BigDoor::Attribute.should respond_to(:all).with(1).arguments
11
+ end
12
+ it "Should load Array of Attributes at the beginning" do
13
+ currency_types = BigDoor::Attribute.all( @client )
14
+ currency_types.should be_a_instance_of( Array )
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ module BigDoor
4
+ describe Award do
5
+ before(:each) do
6
+ @client = BigDoor::Client.new( TEST_APP_SECRET, TEST_APP_KEY )
7
+ end
8
+ context "fresh Award object" do
9
+ subject { BigDoor::Award.new }
10
+ it { should be }
11
+ it { should be_a_instance_of( BigDoor::Award )}
12
+ end
13
+ context "Award class" do
14
+ it "Should respond to :all" do
15
+ BigDoor::Award.should respond_to(:all).with(2).arguments
16
+ end
17
+ end
18
+ end
19
+ end