friendly-attributes 0.7.1.1 → 0.7.2

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.
@@ -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