friendly-attributes 0.7.1.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,81 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'memcached'
5
+ require 'yajl'
6
+ require 'friendly_attributes'
7
+ require 'database_cleaner'
8
+
9
+ # Requires supporting files with custom matchers and macros, etc,
10
+ # in ./support/ and its subdirectories.
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
12
+
13
+ RSpec.configure do |config|
14
+ yaml = YAML.load(File.read(File.dirname(__FILE__) + "/config.yml"))
15
+ Friendly.configure yaml['test']
16
+
17
+ $db = Friendly.db
18
+
19
+ %w[user_details user_second_details index_user_details_on_user_id].each do |table|
20
+ $db.drop_table(table) if $db.table_exists?(table)
21
+ end
22
+
23
+ Friendly.datastore = Friendly::DataStore.new($db)
24
+ $cache = Memcached.new
25
+ Friendly.cache = Friendly::Memcached.new($cache)
26
+
27
+ ActiveRecord::Base.logger = Friendly.db.logger = Logger.new(File.dirname(__FILE__) + "/../log/test.log")
28
+
29
+ ActiveRecord::Base.configurations = yaml
30
+ ActiveRecord::Base.establish_connection 'test'
31
+ ActiveRecord::Schema.define do
32
+ create_table :parents, :force => true do |t|
33
+ end
34
+
35
+ create_table :users, :force => true do |t|
36
+ t.string :email
37
+ t.references :parent
38
+ end
39
+ end
40
+
41
+ class ::UserDetails < FriendlyAttributes::Base
42
+ end
43
+
44
+ class ::UserSecondDetails < FriendlyAttributes::Base
45
+ end
46
+
47
+ class ::User < ActiveRecord::Base
48
+ belongs_to :parent
49
+
50
+ include FriendlyAttributes
51
+
52
+ friendly_details(UserDetails, { Integer => [:birth_year, :shoe_size], Friendly::Boolean => :subscribed }, { :active_record_key => :user_id }) do
53
+ delegated_attribute :name, String
54
+ end
55
+
56
+ friendly_details(UserSecondDetails, Integer => :second_int)
57
+
58
+ def friendly_details_build_options(friendly_model)
59
+ if UserDetails == friendly_model
60
+ { :shoe_size => 42 }
61
+ else
62
+ {}
63
+ end
64
+ end
65
+ end
66
+
67
+ class ::Parent < ActiveRecord::Base
68
+ has_many :users
69
+
70
+ accepts_nested_attributes_for :users
71
+ end
72
+
73
+ Friendly::Document.create_tables!
74
+
75
+ DatabaseCleaner.strategy = :truncation
76
+ DatabaseCleaner.clean_with(:truncation)
77
+
78
+ config.extend DatabaseCleanerHelpers
79
+ config.include FriendlyAttributes::Test::Matchers
80
+ end
81
+
@@ -0,0 +1,18 @@
1
+ module ActiveRecordFake
2
+ def self.included(base)
3
+ base.instance_eval do
4
+ attr_accessor :id
5
+ end
6
+
7
+ (class << base; self; end).class_eval do
8
+ def after_save(*args); end
9
+ def after_destroy(*args); end
10
+ end
11
+ end
12
+
13
+ def initialize(attributes={})
14
+ attributes.each do |k, v|
15
+ send(:"#{k}=", v)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ module DatabaseCleanerHelpers
2
+ def use_database_cleanup
3
+ before(:each) do
4
+ DatabaseCleaner.start
5
+ end
6
+
7
+ after(:each) do
8
+ DatabaseCleaner.clean
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module FriendlyFake
2
+ def self.included(base)
3
+ base.instance_eval do
4
+ def name
5
+ "FriendlyFake"
6
+ end
7
+ end
8
+ end
9
+ end
10
+
11
+ RSpec.configure do |config|
12
+ def mock_friendly_model
13
+ Class.new { include FriendlyFake }
14
+ end
15
+ end
metadata CHANGED
@@ -1,406 +1,147 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: friendly-attributes
3
- version: !ruby/object:Gem::Version
4
- hash: 113
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 7
9
- - 1
10
- - 1
11
- version: 0.7.1.1
12
6
  platform: ruby
13
- authors:
7
+ authors:
14
8
  - Istvan Hoka
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2011-04-10 00:00:00 +03:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- type: :runtime
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 9
30
- segments:
31
- - 2
32
- - 3
33
- - 5
34
- version: 2.3.5
35
- name: activerecord
36
- version_requirements: *id001
37
- prerelease: false
38
- - !ruby/object:Gem::Dependency
39
- type: :runtime
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- - 6
49
- - 2
50
- version: 0.6.2
51
- name: ihoka-friendly
52
- version_requirements: *id002
53
- prerelease: false
54
- - !ruby/object:Gem::Dependency
55
- type: :runtime
56
- requirement: &id003 !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 13
62
- segments:
63
- - 0
64
- - 7
65
- - 7
66
- version: 0.7.7
67
- name: yajl-ruby
68
- version_requirements: *id003
69
- prerelease: false
70
- - !ruby/object:Gem::Dependency
71
- type: :runtime
72
- requirement: &id004 !ruby/object:Gem::Requirement
12
+ date: 2011-04-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mysql
16
+ requirement: !ruby/object:Gem::Requirement
73
17
  none: false
74
- requirements:
18
+ requirements:
75
19
  - - ~>
76
- - !ruby/object:Gem::Version
77
- hash: 77
78
- segments:
79
- - 0
80
- - 20
81
- - 1
82
- version: 0.20.1
83
- name: memcached
84
- version_requirements: *id004
85
- prerelease: false
86
- - !ruby/object:Gem::Dependency
87
- type: :runtime
88
- requirement: &id005 !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- hash: 3
94
- segments:
95
- - 0
96
- version: "0"
97
- name: ruby-debug
98
- version_requirements: *id005
99
- prerelease: false
100
- - !ruby/object:Gem::Dependency
20
+ - !ruby/object:Gem::Version
21
+ version: 2.8.1
101
22
  type: :development
102
- requirement: &id006 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
103
25
  none: false
104
- requirements:
26
+ requirements:
105
27
  - - ~>
106
- - !ruby/object:Gem::Version
107
- hash: 45
108
- segments:
109
- - 2
110
- - 8
111
- - 1
28
+ - !ruby/object:Gem::Version
112
29
  version: 2.8.1
113
- name: mysql
114
- version_requirements: *id006
115
- prerelease: false
116
- - !ruby/object:Gem::Dependency
117
- type: :development
118
- requirement: &id007 !ruby/object:Gem::Requirement
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
119
33
  none: false
120
- requirements:
34
+ requirements:
121
35
  - - ~>
122
- - !ruby/object:Gem::Version
123
- hash: 27
124
- segments:
125
- - 2
126
- - 5
127
- - 0
36
+ - !ruby/object:Gem::Version
128
37
  version: 2.5.0
129
- name: rspec
130
- version_requirements: *id007
131
- prerelease: false
132
- - !ruby/object:Gem::Dependency
133
38
  type: :development
134
- requirement: &id008 !ruby/object:Gem::Requirement
135
- none: false
136
- requirements:
137
- - - ~>
138
- - !ruby/object:Gem::Version
139
- hash: 23
140
- segments:
141
- - 1
142
- - 0
143
- - 0
144
- version: 1.0.0
145
- name: bundler
146
- version_requirements: *id008
147
39
  prerelease: false
148
- - !ruby/object:Gem::Dependency
149
- type: :development
150
- requirement: &id009 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
151
41
  none: false
152
- requirements:
42
+ requirements:
153
43
  - - ~>
154
- - !ruby/object:Gem::Version
155
- hash: 1
156
- segments:
157
- - 1
158
- - 5
159
- - 1
160
- version: 1.5.1
161
- name: jeweler
162
- version_requirements: *id009
163
- prerelease: false
164
- - !ruby/object:Gem::Dependency
165
- type: :development
166
- requirement: &id010 !ruby/object:Gem::Requirement
167
- none: false
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- hash: 3
172
- segments:
173
- - 0
174
- version: "0"
175
- name: rcov
176
- version_requirements: *id010
177
- prerelease: false
178
- - !ruby/object:Gem::Dependency
179
- type: :development
180
- requirement: &id011 !ruby/object:Gem::Requirement
44
+ - !ruby/object:Gem::Version
45
+ version: 2.5.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: database_cleaner
48
+ requirement: !ruby/object:Gem::Requirement
181
49
  none: false
182
- requirements:
50
+ requirements:
183
51
  - - ~>
184
- - !ruby/object:Gem::Version
185
- hash: 11
186
- segments:
187
- - 0
188
- - 5
189
- - 0
52
+ - !ruby/object:Gem::Version
190
53
  version: 0.5.0
191
- name: database_cleaner
192
- version_requirements: *id011
193
- prerelease: false
194
- - !ruby/object:Gem::Dependency
195
- type: :development
196
- requirement: &id012 !ruby/object:Gem::Requirement
197
- none: false
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- hash: 3
202
- segments:
203
- - 0
204
- version: "0"
205
- name: autotest
206
- version_requirements: *id012
207
- prerelease: false
208
- - !ruby/object:Gem::Dependency
209
54
  type: :development
210
- requirement: &id013 !ruby/object:Gem::Requirement
211
- none: false
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- hash: 3
216
- segments:
217
- - 0
218
- version: "0"
219
- name: autotest-fsevent
220
- version_requirements: *id013
221
55
  prerelease: false
222
- - !ruby/object:Gem::Dependency
223
- type: :development
224
- requirement: &id014 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
225
57
  none: false
226
- requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- hash: 3
230
- segments:
231
- - 0
232
- version: "0"
233
- name: autotest-growl
234
- version_requirements: *id014
235
- prerelease: false
236
- - !ruby/object:Gem::Dependency
237
- type: :development
238
- requirement: &id015 !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.5.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: ihoka-friendly
64
+ requirement: !ruby/object:Gem::Requirement
239
65
  none: false
240
- requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- hash: 3
244
- segments:
245
- - 0
246
- version: "0"
247
- name: syntax
248
- version_requirements: *id015
249
- prerelease: false
250
- - !ruby/object:Gem::Dependency
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.7.0
251
70
  type: :runtime
252
- requirement: &id016 !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
253
73
  none: false
254
- requirements:
74
+ requirements:
255
75
  - - ~>
256
- - !ruby/object:Gem::Version
257
- hash: 9
258
- segments:
259
- - 2
260
- - 3
261
- - 5
262
- version: 2.3.5
76
+ - !ruby/object:Gem::Version
77
+ version: 0.7.0
78
+ - !ruby/object:Gem::Dependency
263
79
  name: activerecord
264
- version_requirements: *id016
265
- prerelease: false
266
- - !ruby/object:Gem::Dependency
267
- type: :runtime
268
- requirement: &id017 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
269
81
  none: false
270
- requirements:
82
+ requirements:
271
83
  - - ~>
272
- - !ruby/object:Gem::Version
273
- hash: 13
274
- segments:
275
- - 0
276
- - 7
277
- - 7
278
- version: 0.7.7
279
- name: yajl-ruby
280
- version_requirements: *id017
281
- prerelease: false
282
- - !ruby/object:Gem::Dependency
84
+ - !ruby/object:Gem::Version
85
+ version: 2.3.18
283
86
  type: :runtime
284
- requirement: &id018 !ruby/object:Gem::Requirement
285
- none: false
286
- requirements:
287
- - - ~>
288
- - !ruby/object:Gem::Version
289
- hash: 77
290
- segments:
291
- - 0
292
- - 20
293
- - 1
294
- version: 0.20.1
295
- name: memcached
296
- version_requirements: *id018
297
87
  prerelease: false
298
- - !ruby/object:Gem::Dependency
299
- type: :development
300
- requirement: &id019 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
301
89
  none: false
302
- requirements:
90
+ requirements:
303
91
  - - ~>
304
- - !ruby/object:Gem::Version
305
- hash: 45
306
- segments:
307
- - 2
308
- - 8
309
- - 1
310
- version: 2.8.1
311
- name: mysql
312
- version_requirements: *id019
313
- prerelease: false
314
- - !ruby/object:Gem::Dependency
315
- type: :development
316
- requirement: &id020 !ruby/object:Gem::Requirement
92
+ - !ruby/object:Gem::Version
93
+ version: 2.3.18
94
+ - !ruby/object:Gem::Dependency
95
+ name: yajl-ruby
96
+ requirement: !ruby/object:Gem::Requirement
317
97
  none: false
318
- requirements:
98
+ requirements:
319
99
  - - ~>
320
- - !ruby/object:Gem::Version
321
- hash: 11
322
- segments:
323
- - 2
324
- - 1
325
- - 0
326
- version: 2.1.0
327
- name: rspec
328
- version_requirements: *id020
100
+ - !ruby/object:Gem::Version
101
+ version: 0.7.7
102
+ type: :runtime
329
103
  prerelease: false
330
- - !ruby/object:Gem::Dependency
331
- type: :development
332
- requirement: &id021 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
333
105
  none: false
334
- requirements:
106
+ requirements:
335
107
  - - ~>
336
- - !ruby/object:Gem::Version
337
- hash: 23
338
- segments:
339
- - 1
340
- - 0
341
- - 0
342
- version: 1.0.0
343
- name: bundler
344
- version_requirements: *id021
345
- prerelease: false
346
- - !ruby/object:Gem::Dependency
347
- type: :development
348
- requirement: &id022 !ruby/object:Gem::Requirement
108
+ - !ruby/object:Gem::Version
109
+ version: 0.7.7
110
+ - !ruby/object:Gem::Dependency
111
+ name: memcached
112
+ requirement: !ruby/object:Gem::Requirement
349
113
  none: false
350
- requirements:
114
+ requirements:
351
115
  - - ~>
352
- - !ruby/object:Gem::Version
353
- hash: 1
354
- segments:
355
- - 1
356
- - 5
357
- - 1
358
- version: 1.5.1
359
- name: jeweler
360
- version_requirements: *id022
361
- prerelease: false
362
- - !ruby/object:Gem::Dependency
363
- type: :development
364
- requirement: &id023 !ruby/object:Gem::Requirement
365
- none: false
366
- requirements:
367
- - - ">="
368
- - !ruby/object:Gem::Version
369
- hash: 3
370
- segments:
371
- - 0
372
- version: "0"
373
- name: rcov
374
- version_requirements: *id023
116
+ - !ruby/object:Gem::Version
117
+ version: 0.20.1
118
+ type: :runtime
375
119
  prerelease: false
376
- - !ruby/object:Gem::Dependency
377
- type: :development
378
- requirement: &id024 !ruby/object:Gem::Requirement
120
+ version_requirements: !ruby/object:Gem::Requirement
379
121
  none: false
380
- requirements:
122
+ requirements:
381
123
  - - ~>
382
- - !ruby/object:Gem::Version
383
- hash: 11
384
- segments:
385
- - 0
386
- - 5
387
- - 0
388
- version: 0.5.0
389
- name: database_cleaner
390
- version_requirements: *id024
391
- prerelease: false
392
- description: Pattern to add fields to ActiveRecord models, using an associated document, without needing schema migrations.
124
+ - !ruby/object:Gem::Version
125
+ version: 0.20.1
126
+ description: Pattern to add fields to ActiveRecord models, using an associated document,
127
+ without needing schema migrations.
393
128
  email: istvan.hoka@gmail.com
394
129
  executables: []
395
-
396
130
  extensions: []
397
-
398
- extra_rdoc_files:
399
- - LICENSE.txt
400
- - README.md
401
- files:
131
+ extra_rdoc_files: []
132
+ files:
133
+ - .gitignore
134
+ - .ruby-version
135
+ - .travis.yml
136
+ - .yardopts
402
137
  - CHANGELOG.md
138
+ - Gemfile
139
+ - Gemfile.lock
403
140
  - LICENSE.txt
141
+ - README.md
142
+ - Rakefile
143
+ - VERSION
144
+ - friendly-attributes.gemspec
404
145
  - lib/friendly-attributes.rb
405
146
  - lib/friendly_attributes.rb
406
147
  - lib/friendly_attributes/base.rb
@@ -409,40 +150,52 @@ files:
409
150
  - lib/friendly_attributes/details_delegator.rb
410
151
  - lib/friendly_attributes/instance_methods.rb
411
152
  - lib/friendly_attributes/test/matchers.rb
412
- - README.md
413
- has_rdoc: true
153
+ - log/.gitkeep
154
+ - spec/config.sample.yml
155
+ - spec/friendly_attributes/base_spec.rb
156
+ - spec/friendly_attributes/class_methods_spec.rb
157
+ - spec/friendly_attributes/configuration_spec.rb
158
+ - spec/friendly_attributes/details_delegator_spec.rb
159
+ - spec/friendly_attributes/instance_methods_spec.rb
160
+ - spec/friendly_attributes_spec.rb
161
+ - spec/spec_helper.rb
162
+ - spec/support/active_record_fake.rb
163
+ - spec/support/database_cleaner_helpers.rb
164
+ - spec/support/friendly_fake.rb
414
165
  homepage: http://github.com/ihoka/friendly-attributes
415
- licenses:
166
+ licenses:
416
167
  - MIT
417
168
  post_install_message:
418
169
  rdoc_options: []
419
-
420
- require_paths:
170
+ require_paths:
421
171
  - lib
422
- required_ruby_version: !ruby/object:Gem::Requirement
172
+ required_ruby_version: !ruby/object:Gem::Requirement
423
173
  none: false
424
- requirements:
425
- - - ">="
426
- - !ruby/object:Gem::Version
427
- hash: 3
428
- segments:
429
- - 0
430
- version: "0"
431
- required_rubygems_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
432
179
  none: false
433
- requirements:
434
- - - ">="
435
- - !ruby/object:Gem::Version
436
- hash: 3
437
- segments:
438
- - 0
439
- version: "0"
180
+ requirements:
181
+ - - ! '>='
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
440
184
  requirements: []
441
-
442
185
  rubyforge_project:
443
- rubygems_version: 1.6.2
186
+ rubygems_version: 1.8.25
444
187
  signing_key:
445
188
  specification_version: 3
446
189
  summary: Extend ActiveRecord models using Friendly ORM delegate models
447
- test_files: []
448
-
190
+ test_files:
191
+ - spec/config.sample.yml
192
+ - spec/friendly_attributes/base_spec.rb
193
+ - spec/friendly_attributes/class_methods_spec.rb
194
+ - spec/friendly_attributes/configuration_spec.rb
195
+ - spec/friendly_attributes/details_delegator_spec.rb
196
+ - spec/friendly_attributes/instance_methods_spec.rb
197
+ - spec/friendly_attributes_spec.rb
198
+ - spec/spec_helper.rb
199
+ - spec/support/active_record_fake.rb
200
+ - spec/support/database_cleaner_helpers.rb
201
+ - spec/support/friendly_fake.rb