representation 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # representation
2
2
  Create different, named representations of a resource for cleaner state representation.
3
+ See: http://en.wikipedia.org/wiki/Representational_State_Transfer#Central_principle
3
4
 
4
5
  ## Install
5
6
 
@@ -9,8 +10,7 @@ Create different, named representations of a resource for cleaner state represen
9
10
  ## Usage
10
11
 
11
12
  ```ruby
12
- class User < ActiveRecord::Base
13
- include Representation
13
+ class User < ActiveRecord::Base
14
14
  representation :public, :name, :calculated_age
15
15
  representation :internal, :name, :ssn, :age
16
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -1,6 +1,9 @@
1
1
  require 'active_record'
2
2
 
3
3
  module Representation
4
+
5
+ class UnknownRepresentationError < StandardError; end
6
+
4
7
  module ActiveRecord
5
8
  extend ActiveSupport::Concern
6
9
 
@@ -17,6 +20,7 @@ module Representation
17
20
  representations.keys
18
21
  end
19
22
  def values_for_representation(name)
23
+ raise UnknownRepresentationError, "Unknown Representation '#{name}'" unless representation_names.include?(name)
20
24
  representations[name]
21
25
  end
22
26
  end
@@ -46,7 +50,8 @@ module Representation
46
50
  end
47
51
  end
48
52
  end
49
-
53
+
54
+ alias_method :as, :representation
50
55
  end
51
56
  end
52
57
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{representation}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Chris Johnson"]
12
- s.date = %q{2011-07-14}
12
+ s.date = %q{2011-07-21}
13
13
  s.description = %q{Create different, named representations of a resource for cleaner state representation.}
14
14
  s.email = %q{findchris@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -33,7 +33,6 @@ Gem::Specification.new do |s|
33
33
  "spec/spec_helper.rb",
34
34
  "spec/support/connection.rb",
35
35
  "spec/support/models.rb",
36
- "spec/support/representation.sqlite3",
37
36
  "spec/support/schema.rb"
38
37
  ]
39
38
  s.homepage = %q{http://github.com/findchris/representation}
@@ -117,6 +117,14 @@ describe "Representation" do
117
117
  public_user.name = 'Tweedle Dee'
118
118
  user.name.should == 'Tweedle Dum'
119
119
  end
120
+ it "should raise a Representation::UnknownRepresentationError when referencing an unknown representation" do
121
+ user = User.new(:name => 'Tweedle Dum', :age => 42)
122
+ lambda { user.representation(:invalid) }.should raise_error Representation::UnknownRepresentationError
123
+ end
124
+ it "should allow #representation to be accessed via the #as alias" do
125
+ user = User.new(:name => 'Tweedle Dum', :age => 42)
126
+ user.as(:public).inspect.should == user.representation(:public).inspect # hacky equality test
127
+ end
120
128
  end
121
129
  context "ActiveRecord" do
122
130
  it "should include the Representation module into ActiveRecord" do
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: representation
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.1
5
+ version: 0.1.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Chris Johnson
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-14 00:00:00 -07:00
13
+ date: 2011-07-21 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -116,7 +116,6 @@ files:
116
116
  - spec/spec_helper.rb
117
117
  - spec/support/connection.rb
118
118
  - spec/support/models.rb
119
- - spec/support/representation.sqlite3
120
119
  - spec/support/schema.rb
121
120
  has_rdoc: true
122
121
  homepage: http://github.com/findchris/representation
@@ -132,7 +131,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
131
  requirements:
133
132
  - - ">="
134
133
  - !ruby/object:Gem::Version
135
- hash: -3085468692160699656
134
+ hash: -1114165197948906775
136
135
  segments:
137
136
  - 0
138
137
  version: "0"