classy_enum 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -2,9 +2,15 @@ h1. classy_enum
2
2
 
3
3
  ClassyEnum adds class-based enumerator functionality to your ActiveRecord model's attributes.
4
4
 
5
+ h2. Requirements
6
+
7
+ *Rails:* ClassyEnum should work with any version of Rails 2.3.x. Rails 3 support is in the works, and should be ready soon.
8
+
9
+ *Ruby:* ClassyEnum has been tested with Ruby 1.8.7 and 1.9.2.
10
+
5
11
  h2. Installation
6
12
 
7
- ClassyEnum has only been tested with Rails 2.3.8, but should work with any version of Rails 2.3.x. The gem is hosted at "rubygems.org":https://rubygems.org/gems/classy_enum
13
+ The gem is hosted at "rubygems.org":https://rubygems.org/gems/classy_enum
8
14
 
9
15
  It can be installed with:
10
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.2
data/classy_enum.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{classy_enum}
8
- s.version = "0.3.0"
8
+ s.version = "0.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Peter Brown"]
12
- s.date = %q{2010-10-04}
12
+ s.date = %q{2010-10-16}
13
13
  s.description = %q{A utility that adds class based enum functionaltiy to ActiveRecord attributes}
14
14
  s.email = %q{github@lette.us}
15
15
  s.extra_rdoc_files = [
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "lib/classy_enum/classy_enum_attributes.rb",
32
32
  "lib/classy_enum/classy_enum_helper.rb",
33
33
  "spec/classy_enum_attributes_spec.rb",
34
+ "spec/classy_enum_helper_spec.rb",
34
35
  "spec/classy_enum_spec.rb",
35
36
  "spec/spec.opts",
36
37
  "spec/spec_helper.rb"
@@ -42,6 +43,7 @@ Gem::Specification.new do |s|
42
43
  s.summary = %q{A class based enumerator utility for Ruby on Rails}
43
44
  s.test_files = [
44
45
  "spec/classy_enum_attributes_spec.rb",
46
+ "spec/classy_enum_helper_spec.rb",
45
47
  "spec/classy_enum_spec.rb",
46
48
  "spec/spec_helper.rb"
47
49
  ]
data/lib/classy_enum.rb CHANGED
@@ -24,7 +24,7 @@ end
24
24
 
25
25
  module ClassyEnum
26
26
 
27
- module ClassMethods
27
+ module SuperClassMethods
28
28
 
29
29
  def new(option)
30
30
  self::OPTION_HASH[option] || TypeError.new("Valid #{self} options are #{self.valid_options}")
@@ -51,7 +51,7 @@ module ClassyEnum
51
51
  end
52
52
 
53
53
  def self.included(other)
54
- other.extend ClassMethods
54
+ other.extend SuperClassMethods
55
55
 
56
56
  other.const_set("OPTION_HASH", Hash.new)
57
57
 
@@ -13,12 +13,12 @@ module ClassyEnumAttributes
13
13
 
14
14
  # Define getter method
15
15
  define_method method do
16
- klass.new(super)
16
+ klass.new(super())
17
17
  end
18
18
 
19
19
  # Define setter method
20
20
  define_method "#{method}=" do |value|
21
- super value.to_s
21
+ super(value.to_s)
22
22
  end
23
23
 
24
24
  end
@@ -1,9 +1,5 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
- class Dog < ActiveRecord::Base
4
- classy_enum_attr :breed
5
- end
6
-
7
3
  describe "A Dog Collection" do
8
4
  before(:each) do
9
5
  dog1 = Dog.new(:breed => :golden_retriever)
@@ -0,0 +1,32 @@
1
+ require "spec/spec_helper"
2
+
3
+ describe 'using enum_select input' do
4
+ include FormtasticSpecHelper
5
+
6
+ Formtastic::SemanticFormHelper.builder = ClassyEnumHelper::SemanticFormBuilder
7
+
8
+ context "when building a form with a classy_enum select" do
9
+ before(:each) do
10
+ @output_buffer = ""
11
+ @output = semantic_form_for(Dog.new(:breed => :snoop), :url => "/") do |builder|
12
+ concat(builder.input(:breed, :as => :enum_select))
13
+ end
14
+ end
15
+
16
+ it "should produce a form tag" do
17
+ @output.should =~ /<form/
18
+ end
19
+
20
+ it "should produce an unselected option tag for Golden Retriever" do
21
+ regex = Regexp.new("<option value=\\\"golden_retriever\\\">Golden Retriever")
22
+ @output.should =~ regex
23
+ end
24
+
25
+ it "should produce an selected option tag for Snoop" do
26
+ regex = Regexp.new("<option value=\\\"snoop\\\" selected=\\\"selected\\\">Snoop")
27
+ @output.should =~ regex
28
+ end
29
+ end
30
+
31
+ end
32
+
data/spec/spec_helper.rb CHANGED
@@ -4,8 +4,9 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
  require 'rubygems'
5
5
  require 'spec'
6
6
 
7
- require 'active_record'
8
- require 'action_view'
7
+ require 'activerecord'
8
+ require 'actionpack'
9
+ require 'action_controller'
9
10
  require 'formtastic'
10
11
  require 'classy_enum'
11
12
 
@@ -26,3 +27,41 @@ module Breed
26
27
 
27
28
  include ClassyEnum
28
29
  end
30
+
31
+ class Dog < ActiveRecord::Base
32
+ classy_enum_attr :breed
33
+ end
34
+
35
+ module FormtasticSpecHelper
36
+ include ActionPack
37
+ include ActionView::Context if defined?(ActionView::Context)
38
+ include ActionController::RecordIdentifier
39
+ include ActionView::Helpers::FormHelper
40
+ include ActionView::Helpers::FormTagHelper
41
+ include ActionView::Helpers::FormOptionsHelper
42
+ include ActionView::Helpers::UrlHelper
43
+ include ActionView::Helpers::TagHelper
44
+ include ActionView::Helpers::TextHelper
45
+ include ActionView::Helpers::DateHelper
46
+ include ActionView::Helpers::CaptureHelper
47
+ include ActionView::Helpers::AssetTagHelper
48
+ include ActiveSupport
49
+ include ActionView::Helpers::ActiveRecordHelper if defined?(ActionView::Helpers::ActiveRecordHelper)
50
+ include ActionView::Helpers::ActiveModelHelper if defined?(ActionView::Helpers::ActiveModelHelper)
51
+ include ActionController::PolymorphicRoutes if defined?(ActionController::PolymorphicRoutes)
52
+ include Formtastic::SemanticFormHelper
53
+
54
+ def self.included(base)
55
+ base.class_eval do
56
+
57
+ attr_accessor :output_buffer
58
+
59
+ def protect_against_forgery?
60
+ false
61
+ end
62
+
63
+ end
64
+ end
65
+
66
+ end
67
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: classy_enum
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Peter Brown
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-04 00:00:00 -04:00
18
+ date: 2010-10-16 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -73,6 +73,7 @@ files:
73
73
  - lib/classy_enum/classy_enum_attributes.rb
74
74
  - lib/classy_enum/classy_enum_helper.rb
75
75
  - spec/classy_enum_attributes_spec.rb
76
+ - spec/classy_enum_helper_spec.rb
76
77
  - spec/classy_enum_spec.rb
77
78
  - spec/spec.opts
78
79
  - spec/spec_helper.rb
@@ -112,5 +113,6 @@ specification_version: 3
112
113
  summary: A class based enumerator utility for Ruby on Rails
113
114
  test_files:
114
115
  - spec/classy_enum_attributes_spec.rb
116
+ - spec/classy_enum_helper_spec.rb
115
117
  - spec/classy_enum_spec.rb
116
118
  - spec/spec_helper.rb