active_api 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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