thirtythirty 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,5 +1,4 @@
1
1
  *.gem
2
2
  .bundle
3
- Gemfile.lock
4
3
  pkg/*
5
4
  spec/reports
data/Gemfile.lock ADDED
@@ -0,0 +1,31 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ thirtythirty (0.0.7)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ builder (3.0.0)
10
+ ci_reporter (1.6.4)
11
+ builder (>= 2.1.2)
12
+ diff-lcs (1.1.2)
13
+ rake (0.8.7)
14
+ rspec (2.4.0)
15
+ rspec-core (~> 2.4.0)
16
+ rspec-expectations (~> 2.4.0)
17
+ rspec-mocks (~> 2.4.0)
18
+ rspec-core (2.4.0)
19
+ rspec-expectations (2.4.0)
20
+ diff-lcs (~> 1.1.2)
21
+ rspec-mocks (2.4.0)
22
+
23
+ PLATFORMS
24
+ java
25
+ ruby
26
+
27
+ DEPENDENCIES
28
+ ci_reporter (~> 1.6.3)
29
+ rake (= 0.8.7)
30
+ rspec (~> 2.4.0)
31
+ thirtythirty!
data/lib/thirtythirty.rb CHANGED
@@ -7,7 +7,10 @@ module Thirtythirty
7
7
  send :include, InstanceMethods
8
8
  @marshalled_attributes = []
9
9
  end
10
- @marshalled_attributes = (@marshalled_attributes.map | attributes.flatten.map(&:to_sym).uniq)
10
+ attributes_to_add = attributes.flatten.map(&:to_sym).uniq
11
+ added_attributes = attributes_to_add - @marshalled_attributes
12
+ @marshalled_attributes = (@marshalled_attributes | attributes_to_add)
13
+ added_attributes
11
14
  end
12
15
 
13
16
  # Activates marshalling for the given attributes and generates getters - you have to implement setters yourself!
@@ -96,6 +96,38 @@ describe Thirtythirty do
96
96
 
97
97
  end
98
98
 
99
+ describe "combined marshalling" do
100
+
101
+ subject do
102
+ Class.new(ThirtythirtyBase) do
103
+ attr_reader :untouched
104
+ def untouched=(untouched)
105
+ @untouched = untouched.upcase
106
+ end
107
+ marshal :untouched
108
+ marshalled_accessor :touched
109
+ end
110
+ end
111
+
112
+ it "should add given attributes to marshalled attributes (symbolized, unique, frozen)" do
113
+ subject.marshalled_attributes.should =~ [:touched, :untouched]
114
+ subject.marshalled_attributes.should be_frozen
115
+ end
116
+
117
+ it "should generate a reader and a writer for attribute touched" do
118
+ obj = subject.new
119
+ obj.should respond_to(:touched)
120
+ obj.should respond_to(:touched)
121
+ end
122
+
123
+ it "should not regenerate reader and writer for attribute untouched" do
124
+ obj = subject.new
125
+ obj.untouched = "down"
126
+ obj.untouched.should == "DOWN"
127
+ end
128
+
129
+ end
130
+
99
131
  describe "#marshalled_attributes" do
100
132
 
101
133
  it "should give all marshalled attributes" do
data/thirtythirty.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "thirtythirty"
4
- s.version = "0.0.6"
4
+ s.version = "0.0.8"
5
5
  s.date = Time.now
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.authors = ["Benjamin Behr", "Thomas Jachmann"]
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.add_development_dependency "ci_reporter", "~> 1.6.3"
16
16
  s.add_development_dependency "rspec", "~> 2.4.0"
17
+ s.add_development_dependency "rake", "0.8.7"
17
18
 
18
19
  s.files = `git ls-files`.split("\n")
19
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thirtythirty
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 6
10
- version: 0.0.6
9
+ - 8
10
+ version: 0.0.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Benjamin Behr
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-02-23 00:00:00 +01:00
19
+ date: 2011-06-28 00:00:00 +02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -51,6 +51,22 @@ dependencies:
51
51
  version: 2.4.0
52
52
  type: :development
53
53
  version_requirements: *id002
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - "="
61
+ - !ruby/object:Gem::Version
62
+ hash: 49
63
+ segments:
64
+ - 0
65
+ - 8
66
+ - 7
67
+ version: 0.8.7
68
+ type: :development
69
+ version_requirements: *id003
54
70
  description: This gem allows for customization of which data to marshal, especially useful for selective session data serialization.
55
71
  email:
56
72
  - benny@digitalbehr.de
@@ -65,6 +81,7 @@ files:
65
81
  - .gitignore
66
82
  - .rspec
67
83
  - Gemfile
84
+ - Gemfile.lock
68
85
  - README.rdoc
69
86
  - Rakefile
70
87
  - lib/thirtythirty.rb