ninja-model 0.9.6 → 1.0.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.
- data/lib/ninja_model.rb +1 -0
- data/lib/ninja_model/base.rb +1 -0
- data/lib/ninja_model/marshalling.rb +15 -0
- data/lib/ninja_model/persistence.rb +1 -1
- data/lib/ninja_model/version.rb +1 -1
- data/spec/lib/ninja_model/marshalling_spec.rb +32 -0
- metadata +78 -25
data/lib/ninja_model.rb
CHANGED
data/lib/ninja_model/base.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
module NinjaModel
|
2
|
+
module Marshalling
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
module InstanceMethods
|
6
|
+
def marshal_dump
|
7
|
+
ActiveSupport::JSON.encode(attributes)
|
8
|
+
end
|
9
|
+
|
10
|
+
def marshal_load(data)
|
11
|
+
self.instantiate(ActiveSupport::JSON.decode(data))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/ninja_model/version.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NinjaModel::Marshalling do
|
4
|
+
let(:adapter) { mock('Adapter') }
|
5
|
+
|
6
|
+
class MarshallingModel < NinjaModel::Base
|
7
|
+
attribute :attr_string, :string
|
8
|
+
attribute :attr_int, :integer
|
9
|
+
attribute :attr_float, :float
|
10
|
+
attribute :attr_date, :date
|
11
|
+
attribute :attr_datetime, :datetime
|
12
|
+
attribute :attr_bool, :boolean
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should properly serialize/deserialize' do
|
16
|
+
original = MarshallingModel.new
|
17
|
+
original.attr_string = 'teststring'
|
18
|
+
original.attr_int = 777
|
19
|
+
original.attr_float = 3.14
|
20
|
+
original.attr_date = Date.new(1976, 6, 22)
|
21
|
+
original.attr_datetime = DateTime.new(1976, 6, 22, 4, 19, 59)
|
22
|
+
original.attr_bool = true
|
23
|
+
serialized = Marshal.dump(original)
|
24
|
+
copy = Marshal.load(serialized)
|
25
|
+
copy.attr_string.should eql('teststring')
|
26
|
+
copy.attr_int.should eql(777)
|
27
|
+
copy.attr_float.should eql(3.14)
|
28
|
+
copy.attr_date.year.should eql(1976)
|
29
|
+
copy.attr_datetime.hour.should eql(4)
|
30
|
+
copy.attr_bool.should be_true
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ninja-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07
|
12
|
+
date: 2013-08-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 3.1.12
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.1.12
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rake
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 2.13.0
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.13.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: mocha
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 0.13.0
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.13.0
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: guard-rspec
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 3.0.0
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 3.0.0
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: libnotify
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ~>
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 0.6.0
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.6.0
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: yard
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ~>
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: 0.7.4
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.7.4
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: redcarpet
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ~>
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: 2.0.0
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 2.0.0
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: sqlite3
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ~>
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: 1.3.5
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 1.3.5
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: factory_girl
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ~>
|
@@ -120,7 +165,12 @@ dependencies:
|
|
120
165
|
version: 4.2.0
|
121
166
|
type: :development
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ~>
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 4.2.0
|
124
174
|
description: Pseudo-ORM for Ruby/Rails with an ActiveRecord-like interface
|
125
175
|
email: theprime@codingprime.com
|
126
176
|
executables: []
|
@@ -167,6 +217,7 @@ files:
|
|
167
217
|
- lib/ninja_model/callbacks.rb
|
168
218
|
- lib/ninja_model/core_ext/symbol.rb
|
169
219
|
- lib/ninja_model/identity.rb
|
220
|
+
- lib/ninja_model/marshalling.rb
|
170
221
|
- lib/ninja_model/persistence.rb
|
171
222
|
- lib/ninja_model/predicate.rb
|
172
223
|
- lib/ninja_model/rails_ext/active_record.rb
|
@@ -192,6 +243,7 @@ files:
|
|
192
243
|
- spec/lib/ninja_model/base_spec.rb
|
193
244
|
- spec/lib/ninja_model/callbacks_spec.rb
|
194
245
|
- spec/lib/ninja_model/identity_spec.rb
|
246
|
+
- spec/lib/ninja_model/marshalling_spec.rb
|
195
247
|
- spec/lib/ninja_model/persistence_spec.rb
|
196
248
|
- spec/lib/ninja_model/predicate_spec.rb
|
197
249
|
- spec/lib/ninja_model/query_methods_spec.rb
|
@@ -231,7 +283,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
231
283
|
version: '0'
|
232
284
|
segments:
|
233
285
|
- 0
|
234
|
-
hash:
|
286
|
+
hash: 651932753
|
235
287
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
288
|
none: false
|
237
289
|
requirements:
|
@@ -240,10 +292,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
292
|
version: '0'
|
241
293
|
segments:
|
242
294
|
- 0
|
243
|
-
hash:
|
295
|
+
hash: 651932753
|
244
296
|
requirements: []
|
245
297
|
rubyforge_project: ninja-model
|
246
|
-
rubygems_version: 1.8.
|
298
|
+
rubygems_version: 1.8.24
|
247
299
|
signing_key:
|
248
300
|
specification_version: 3
|
249
301
|
summary: Pseudo-ORM for Ruby
|
@@ -261,6 +313,7 @@ test_files:
|
|
261
313
|
- spec/lib/ninja_model/base_spec.rb
|
262
314
|
- spec/lib/ninja_model/callbacks_spec.rb
|
263
315
|
- spec/lib/ninja_model/identity_spec.rb
|
316
|
+
- spec/lib/ninja_model/marshalling_spec.rb
|
264
317
|
- spec/lib/ninja_model/persistence_spec.rb
|
265
318
|
- spec/lib/ninja_model/predicate_spec.rb
|
266
319
|
- spec/lib/ninja_model/query_methods_spec.rb
|