active_api 0.1.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.
@@ -0,0 +1,42 @@
1
+ class ObjectHelper
2
+ class << self
3
+ def fields(*args)
4
+ args.each do |field|
5
+ field(field)
6
+ end
7
+ end
8
+
9
+ private
10
+
11
+ def field(field_name)
12
+ define_method field_name do
13
+ attributes[field_name]
14
+ end
15
+ define_method "#{field_name}=" do |value|
16
+ attributes[field_name] = value
17
+ end
18
+ end
19
+ end
20
+
21
+ attr_reader :attributes
22
+ def initialize(options = {})
23
+ @attributes = options
24
+ end
25
+
26
+ end
27
+
28
+ class Author < ObjectHelper
29
+ fields :id, :name
30
+ end
31
+
32
+ class Article < ObjectHelper
33
+ fields :id, :author, :title, :published_on, :comments, :created_at, :updated_at
34
+ end
35
+
36
+ class User < ObjectHelper
37
+ fields :id, :username
38
+ end
39
+
40
+ class Comment < ObjectHelper
41
+ fields :id, :article, :user, :text, :commentable
42
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec'
2
+
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
+ require 'active_api'
6
+ require 'faker'
7
+ require 'rr'
8
+ require 'domain'
9
+
10
+ module SchemaHelper
11
+ def reset_schema
12
+ ActiveApi::Schema.reset_inheritable_attributes
13
+ ActiveApi::Schema.versions = []
14
+ end
15
+ end
16
+
17
+ Spec::Runner.configure do |config|
18
+ config.mock_with :rr
19
+ config.include SchemaHelper
20
+ config.before(:each) { reset_schema }
21
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Dean
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-07-05 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nokogiri
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.3.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
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.2
34
+ version:
35
+ description:
36
+ email: jeff@zilkey.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - LICENSE
43
+ - README.rdoc
44
+ files:
45
+ - .document
46
+ - .gitignore
47
+ - LICENSE
48
+ - README.rdoc
49
+ - Rakefile
50
+ - VERSION
51
+ - active_api.gemspec
52
+ - geminstaller.yml
53
+ - lib/active_api.rb
54
+ - lib/active_api/builder.rb
55
+ - lib/active_api/collection.rb
56
+ - lib/active_api/complex_type.rb
57
+ - lib/active_api/definition.rb
58
+ - lib/active_api/field.rb
59
+ - lib/active_api/has_definition.rb
60
+ - lib/active_api/schema.rb
61
+ - lib/active_api/simple_type.rb
62
+ - spec/active_api/complex_type_spec.rb
63
+ - spec/active_api/definition_spec.rb
64
+ - spec/active_api/field_spec.rb
65
+ - spec/active_api/schema_spec.rb
66
+ - spec/active_api/simple_type_spec.rb
67
+ - spec/api_spec.rb
68
+ - spec/domain.rb
69
+ - spec/spec_helper.rb
70
+ has_rdoc: true
71
+ homepage: http://github.com/zilkey/active_api
72
+ licenses: []
73
+
74
+ post_install_message:
75
+ rdoc_options:
76
+ - --charset=UTF-8
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ version:
91
+ requirements: []
92
+
93
+ rubyforge_project:
94
+ rubygems_version: 1.3.3
95
+ signing_key:
96
+ specification_version: 3
97
+ summary: An api layer for ruby
98
+ test_files:
99
+ - spec/active_api/complex_type_spec.rb
100
+ - spec/active_api/definition_spec.rb
101
+ - spec/active_api/field_spec.rb
102
+ - spec/active_api/schema_spec.rb
103
+ - spec/active_api/simple_type_spec.rb
104
+ - spec/api_spec.rb
105
+ - spec/domain.rb
106
+ - spec/spec_helper.rb