ninja-model 0.9.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -33,6 +33,7 @@ module NinjaModel
33
33
  autoload :Base
34
34
  autoload :Callbacks
35
35
  autoload :Identity
36
+ autoload :Marshalling
36
37
  autoload :Persistence
37
38
  autoload :Predicate
38
39
  autoload :Reflection
@@ -11,6 +11,7 @@ module NinjaModel
11
11
  include Validation
12
12
  include Adapters
13
13
  include Associations
14
+ include Marshalling
14
15
  include Reflection
15
16
  extend ActiveModel::Translation
16
17
  extend ActiveModel::Naming
@@ -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
@@ -3,7 +3,7 @@ module NinjaModel
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
6
- define_model_callbacks :save, :create, :update, :destroy
6
+ define_model_callbacks :save, :create, :update, :destroy, :reload
7
7
  end
8
8
 
9
9
  module InstanceMethods
@@ -1,3 +1,3 @@
1
1
  module NinjaModel
2
- VERSION = "0.9.6"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -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.9.6
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-04 00:00:00.000000000Z
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: &23299580 !ruby/object:Gem::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: *23299580
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: &23298940 !ruby/object:Gem::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: *23298940
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: &23297980 !ruby/object:Gem::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: *23297980
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: &23297220 !ruby/object:Gem::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: *23297220
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: &23296520 !ruby/object:Gem::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: *23296520
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: &23295820 !ruby/object:Gem::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: *23295820
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: &23295180 !ruby/object:Gem::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: *23295180
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: &23294500 !ruby/object:Gem::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: *23294500
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: &23293720 !ruby/object:Gem::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: *23293720
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: &23292940 !ruby/object:Gem::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: *23292940
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: -2262773248581320506
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: -2262773248581320506
295
+ hash: 651932753
244
296
  requirements: []
245
297
  rubyforge_project: ninja-model
246
- rubygems_version: 1.8.10
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