redis-objects 0.7.0 → 0.8.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.
@@ -25,7 +25,10 @@ class Roster
25
25
  list :all_player_stats, :key => 'players:all_stats', :global => true
26
26
  set :total_wins, :key => 'players:#{id}:all_stats'
27
27
  value :my_rank, :key => 'players:my_rank:#{username}'
28
- value :weird_key, :key => 'players:weird_key:#{raise}', :global => true
28
+
29
+ # now support class interpolation as well. not sure why not previously
30
+ def self.jimmyhat; 350; end
31
+ value :weird_key, :key => 'players:weird_key:#{jimmyhat}', :global => true
29
32
 
30
33
  #callable as key
31
34
  counter :daily, :global => true, :key => Proc.new { |roster| "#{roster.name}:#{Time.now.strftime('%Y-%m-%dT%H')}:daily" }
@@ -63,6 +66,17 @@ class CustomMethodRoster < MethodRoster
63
66
  counter :basic
64
67
  end
65
68
 
69
+ class UidRoster < Roster
70
+ attr_accessor :uid
71
+ def initialize(uid=123) @uid = uid end
72
+ end
73
+
74
+ class CustomIdFieldRoster < UidRoster
75
+ redis_id_field :uid
76
+ include Redis::Objects
77
+ counter :basic
78
+ end
79
+
66
80
  describe Redis::Objects do
67
81
  before do
68
82
  @roster = Roster.new
@@ -125,7 +139,7 @@ describe Redis::Objects do
125
139
  @roster.my_rank = 'a'
126
140
  @roster.redis.get('players:my_rank:user1').should == 'a'
127
141
  Roster.weird_key = 'tuka'
128
- Roster.redis.get('players:weird_key:#{raise}').should == 'tuka'
142
+ Roster.redis.get("players:weird_key:#{Roster.jimmyhat}").should == 'tuka'
129
143
 
130
144
  k = "Roster:#{Time.now.strftime('%Y-%m-%dT%H')}:daily"
131
145
  @roster.daily.incr
@@ -501,30 +515,33 @@ describe Redis::Objects do
501
515
  @roster.player_stats.size.should == 4
502
516
  @roster.player_stats.should == ['a','c','f','j']
503
517
  @roster.player_stats.get.should == ['a','c','f','j']
518
+ @roster.player_stats.push *['h','i']
519
+ @roster.player_stats.should == ['a','c','f','j','h','i']
520
+ @roster.player_stats.get.should == ['a','c','f','j','h','i']
504
521
 
505
522
  i = -1
506
523
  @roster.player_stats.each do |st|
507
524
  st.should == @roster.player_stats[i += 1]
508
525
  end
509
- @roster.player_stats.should == ['a','c','f','j']
510
- @roster.player_stats.get.should == ['a','c','f','j']
526
+ @roster.player_stats.should == ['a','c','f','j','h','i']
527
+ @roster.player_stats.get.should == ['a','c','f','j','h','i']
511
528
 
512
529
  @roster.player_stats.each_with_index do |st,i|
513
530
  st.should == @roster.player_stats[i]
514
531
  end
515
- @roster.player_stats.should == ['a','c','f','j']
516
- @roster.player_stats.get.should == ['a','c','f','j']
532
+ @roster.player_stats.should == ['a','c','f','j','h','i']
533
+ @roster.player_stats.get.should == ['a','c','f','j','h','i']
517
534
 
518
535
  coll = @roster.player_stats.collect{|st| st}
519
- coll.should == ['a','c','f','j']
520
- @roster.player_stats.should == ['a','c','f','j']
521
- @roster.player_stats.get.should == ['a','c','f','j']
536
+ coll.should == ['a','c','f','j','h','i']
537
+ @roster.player_stats.should == ['a','c','f','j','h','i']
538
+ @roster.player_stats.get.should == ['a','c','f','j','h','i']
522
539
 
523
540
  @roster.player_stats << 'a'
524
541
  coll = @roster.player_stats.select{|st| st == 'a'}
525
542
  coll.should == ['a','a']
526
- @roster.player_stats.should == ['a','c','f','j','a']
527
- @roster.player_stats.get.should == ['a','c','f','j','a']
543
+ @roster.player_stats.should == ['a','c','f','j','h','i','a']
544
+ @roster.player_stats.get.should == ['a','c','f','j','h','i','a']
528
545
  end
529
546
 
530
547
  it "should handle sets of simple values" do
@@ -844,6 +861,15 @@ describe Redis::Objects do
844
861
  @custom_method_roster.basic.should.be.kind_of(Redis::Counter)
845
862
  end
846
863
 
864
+ it "should persist object with custom id field name" do
865
+ @custom_id_field_roster = CustomIdFieldRoster.new()
866
+ @custom_id_field_roster.uid.should == 123 # sanity
867
+ @custom_id_field_roster.increment(:basic).should == 1
868
+ @custom_id_field_roster.basic.increment.should == 2
869
+ @custom_id_field_roster.basic.reset
870
+ @custom_id_field_roster.basic.should == 0
871
+ end
872
+
847
873
  it "should pick up class methods from superclass automatically" do
848
874
  CounterRoster = Class.new(Roster)
849
875
  CounterRoster.counter :extended_counter
metadata CHANGED
@@ -1,74 +1,112 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
5
- prerelease:
4
+ version: 0.8.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nate Wiger
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-27 00:00:00.000000000 Z
11
+ date: 2013-11-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: redis
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.0.2
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
30
55
  - !ruby/object:Gem::Dependency
31
56
  name: bacon
32
57
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
58
  requirements:
35
- - - ! '>='
59
+ - - '>='
36
60
  - !ruby/object:Gem::Version
37
61
  version: '0'
38
62
  type: :development
39
63
  prerelease: false
40
64
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
65
  requirements:
43
- - - ! '>='
66
+ - - '>='
44
67
  - !ruby/object:Gem::Version
45
68
  version: '0'
46
69
  - !ruby/object:Gem::Dependency
47
70
  name: redis-namespace
48
71
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
72
  requirements:
51
- - - ! '>='
73
+ - - '>='
52
74
  - !ruby/object:Gem::Version
53
- version: 1.2.0
75
+ version: '0'
54
76
  type: :development
55
77
  prerelease: false
56
78
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
79
  requirements:
59
- - - ! '>='
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: activerecord
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
60
88
  - !ruby/object:Gem::Version
61
- version: 1.2.0
89
+ version: '3.2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '3.2'
62
97
  description: Map Redis types directly to Ruby objects. Works with any class or ORM.
63
- email: nwiger@gmail.com
98
+ email:
99
+ - nwiger@gmail.com
64
100
  executables: []
65
101
  extensions: []
66
- extra_rdoc_files:
67
- - README.md
102
+ extra_rdoc_files: []
68
103
  files:
104
+ - .gitignore
105
+ - .travis.yml
69
106
  - ATOMICITY.rdoc
70
107
  - CHANGELOG.rdoc
71
108
  - Gemfile
109
+ - LICENSE
72
110
  - README.md
73
111
  - Rakefile
74
112
  - VERSION
@@ -88,6 +126,7 @@ files:
88
126
  - lib/redis/objects/sets.rb
89
127
  - lib/redis/objects/sorted_sets.rb
90
128
  - lib/redis/objects/values.rb
129
+ - lib/redis/objects/version.rb
91
130
  - lib/redis/set.rb
92
131
  - lib/redis/sorted_set.rb
93
132
  - lib/redis/value.rb
@@ -100,27 +139,34 @@ files:
100
139
  - spec/redis_objects_model_spec.rb
101
140
  - spec/spec_helper.rb
102
141
  homepage: http://github.com/nateware/redis-objects
103
- licenses: []
142
+ licenses:
143
+ - Artistic
144
+ metadata: {}
104
145
  post_install_message:
105
146
  rdoc_options: []
106
147
  require_paths:
107
148
  - lib
108
149
  required_ruby_version: !ruby/object:Gem::Requirement
109
- none: false
110
150
  requirements:
111
- - - ! '>='
151
+ - - '>='
112
152
  - !ruby/object:Gem::Version
113
153
  version: '0'
114
154
  required_rubygems_version: !ruby/object:Gem::Requirement
115
- none: false
116
155
  requirements:
117
- - - ! '>='
156
+ - - '>='
118
157
  - !ruby/object:Gem::Version
119
158
  version: '0'
120
159
  requirements: []
121
160
  rubyforge_project:
122
- rubygems_version: 1.8.24
161
+ rubygems_version: 2.0.3
123
162
  signing_key:
124
- specification_version: 3
163
+ specification_version: 4
125
164
  summary: Map Redis types directly to Ruby objects
126
- test_files: []
165
+ test_files:
166
+ - spec/redis_autoload_objects_spec.rb
167
+ - spec/redis_namespace_compat_spec.rb
168
+ - spec/redis_objects_active_record_spec.rb
169
+ - spec/redis_objects_conn_spec.rb
170
+ - spec/redis_objects_instance_spec.rb
171
+ - spec/redis_objects_model_spec.rb
172
+ - spec/spec_helper.rb