rpc-mapper 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,48 @@
1
+ require 'yaml'
2
+
3
+ module RPCMapper::Serialization
4
+
5
+ module ClassMethods
6
+
7
+ def serialize(fields)
8
+ [*fields].each do |field|
9
+ serialized_attributes << field
10
+
11
+ define_method("deserialize_#{field}") do
12
+ YAML.load(self[field]) rescue self[field]
13
+ end
14
+
15
+ alias_method "#{field}_raw", field
16
+ alias_method field, "deserialize_#{field}"
17
+
18
+ set_serialize_writers(field) if self.mutable
19
+
20
+ end
21
+ end
22
+
23
+ def set_serialize_writers(field)
24
+ define_method("serialize_#{field}") do |value|
25
+ self[field] = value.to_yaml
26
+ end
27
+
28
+ alias_method "#{field}_raw=", "#{field}="
29
+ alias_method "#{field}=", "serialize_#{field}"
30
+ end
31
+
32
+ end
33
+
34
+ module InstanceMethods
35
+
36
+ end
37
+
38
+ def self.included(receiver)
39
+ receiver.class_eval do
40
+ class_inheritable_accessor :serialized_attributes
41
+ self.serialized_attributes = []
42
+ end
43
+
44
+ receiver.extend ClassMethods
45
+ receiver.send :include, InstanceMethods
46
+ end
47
+
48
+ end
@@ -0,0 +1,13 @@
1
+ module RPCMapper
2
+ module Version
3
+
4
+ MAJOR = 0
5
+ MINOR = 0
6
+ TINY = 1
7
+
8
+ def self.to_s # :nodoc:
9
+ [MAJOR, MINOR, TINY].join('.')
10
+ end
11
+
12
+ end
13
+ end
data/lib/rpc_mapper.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'bert'
2
+ require 'bertrpc'
3
+
4
+ module RPCMapper
5
+ @@log_file = nil
6
+
7
+ def self.logger
8
+ @@logger ||= default_logger
9
+ end
10
+
11
+ def self.logger=(logger)
12
+ @@logger = logger
13
+ end
14
+
15
+ def self.log_file=(file)
16
+ @@log_file = file
17
+ end
18
+
19
+ def self.default_logger
20
+ if defined?(Rails)
21
+ Rails.logger
22
+ else
23
+ require 'logger' unless defined?(::Logger)
24
+ ::Logger.new(@@log_file)
25
+ end
26
+ end
27
+
28
+ end
29
+
30
+ require 'rpc_mapper/base'
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rpc-mapper
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Travis Petticrew
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-09-01 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: shoulda
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 39
30
+ segments:
31
+ - 2
32
+ - 10
33
+ - 0
34
+ version: 2.10.0
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: leftright
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 19
46
+ segments:
47
+ - 0
48
+ - 0
49
+ - 6
50
+ version: 0.0.6
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: fakeweb
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 27
62
+ segments:
63
+ - 1
64
+ - 3
65
+ - 0
66
+ version: 1.3.0
67
+ type: :development
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: factory_girl
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ hash: 3
78
+ segments:
79
+ - 0
80
+ version: "0"
81
+ type: :development
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: activesupport
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 2
94
+ - 3
95
+ - 0
96
+ version: 2.3.0
97
+ type: :runtime
98
+ version_requirements: *id005
99
+ - !ruby/object:Gem::Dependency
100
+ name: bertrpc
101
+ prerelease: false
102
+ requirement: &id006 !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ hash: 27
108
+ segments:
109
+ - 1
110
+ - 3
111
+ - 0
112
+ version: 1.3.0
113
+ type: :runtime
114
+ version_requirements: *id006
115
+ description:
116
+ email: bobo@petticrew.net
117
+ executables: []
118
+
119
+ extensions: []
120
+
121
+ extra_rdoc_files:
122
+ - README.rdoc
123
+ files:
124
+ - README.rdoc
125
+ - Rakefile
126
+ - lib/rpc_mapper/adapters/abstract_adapter.rb
127
+ - lib/rpc_mapper/adapters/bertrpc_adapter.rb
128
+ - lib/rpc_mapper/adapters.rb
129
+ - lib/rpc_mapper/associations/common.rb
130
+ - lib/rpc_mapper/associations/contains.rb
131
+ - lib/rpc_mapper/associations/external.rb
132
+ - lib/rpc_mapper/base.rb
133
+ - lib/rpc_mapper/cacheable/entry.rb
134
+ - lib/rpc_mapper/cacheable/store.rb
135
+ - lib/rpc_mapper/cacheable.rb
136
+ - lib/rpc_mapper/config_options.rb
137
+ - lib/rpc_mapper/core_ext/kernel/singleton_class.rb
138
+ - lib/rpc_mapper/logger.rb
139
+ - lib/rpc_mapper/mutable.rb
140
+ - lib/rpc_mapper/relation/finder_methods.rb
141
+ - lib/rpc_mapper/relation/query_methods.rb
142
+ - lib/rpc_mapper/relation.rb
143
+ - lib/rpc_mapper/scopes/conditions.rb
144
+ - lib/rpc_mapper/scopes.rb
145
+ - lib/rpc_mapper/serialization.rb
146
+ - lib/rpc_mapper/version.rb
147
+ - lib/rpc_mapper.rb
148
+ has_rdoc: true
149
+ homepage: http://github.com/tpett/rpc-mapper
150
+ licenses: []
151
+
152
+ post_install_message:
153
+ rdoc_options:
154
+ - --main
155
+ - README.rdoc
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ hash: 3
164
+ segments:
165
+ - 0
166
+ version: "0"
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ hash: 3
173
+ segments:
174
+ - 0
175
+ version: "0"
176
+ requirements: []
177
+
178
+ rubyforge_project:
179
+ rubygems_version: 1.3.7
180
+ signing_key:
181
+ specification_version: 3
182
+ summary: Ruby library for querying and mapping data over RPC
183
+ test_files: []
184
+