beef-active_form 1.0.3 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ *svn*
2
+ .DS_Store
3
+
data/README.txt ADDED
@@ -0,0 +1,51 @@
1
+ = active-form plugin for Rails
2
+
3
+ active-form is a plugin that makes it easy to have model objects that support the
4
+ ActiveRecord Validations but are not backed by database tables. The plugin is designed
5
+ to make it possible to use the ActiveForm derived classes in a very similar manner to
6
+ the ActiveRecord::Base derived objects.
7
+
8
+ Originally described at;
9
+
10
+ http://www.realityforge.org/articles/2005/12/02/validations-for-non-activerecord-model-objects
11
+
12
+ == How To Define An ActiveForm Object
13
+
14
+ class Search < ActiveForm
15
+ attr_accessor :text
16
+ validates_length_of :text, :maximum=>30
17
+ end
18
+
19
+ == How To Use ActiveForm Object In Controller
20
+
21
+ class NavigatorController < ApplicationController
22
+ def search
23
+ @search = Search.new(params[:search])
24
+ if @search.valid?
25
+ ...do search here...
26
+ end
27
+ end
28
+ end
29
+
30
+ == How To Use ActiveForm Object In View
31
+
32
+ <%= start_form_tag(:action => 'search') %>
33
+ <%= error_messages_for('search') %>
34
+ <%= text_field('search', 'text', {"maxlength" => 30}) %>
35
+ <button type="submit">Save</button>
36
+ <%= end_form_tag %>
37
+
38
+ == Details
39
+
40
+ License: Released under the MIT license.
41
+ Latest Version: http://www.realityforge.org/svn/public/code/active-form/trunk/
42
+
43
+ == Credits
44
+
45
+ Peter Donald <peter at realityforge dot org>.
46
+ Dae San Hwang for fix to work with Rails 1.1.
47
+ Trevor Squires for suggestion to use Reloadable::Subclasses rather than dispatcher hack for Rails 1.1.
48
+ Tim Lucas for patch to allow bulk addition of attributes.
49
+ Geoff Schmidt for adding support for Callbacks.
50
+ Sean Christman for attributes getter.
51
+ Jack Christensen for attributes setter.
data/Rakefile CHANGED
@@ -1,22 +1,55 @@
1
+ require 'rubygems'
1
2
  require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "active_form"
8
+ gem.summary = %Q{Validations for Non Active Record Models}
9
+ gem.email = "steve@wearebeef.co.uk"
10
+ gem.homepage = "http://github.com/beef/active_form"
11
+ gem.authors = ["Steve England"]
12
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
13
+ end
14
+
15
+ rescue LoadError
16
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
17
+ end
18
+
2
19
  require 'rake/testtask'
3
- require 'rake/rdoctask'
20
+ Rake::TestTask.new(:test) do |test|
21
+ test.libs << 'lib' << 'test'
22
+ test.pattern = 'test/**/*_test.rb'
23
+ test.verbose = true
24
+ end
25
+
26
+ begin
27
+ require 'rcov/rcovtask'
28
+ Rcov::RcovTask.new do |test|
29
+ test.libs << 'test'
30
+ test.pattern = 'test/**/*_test.rb'
31
+ test.verbose = true
32
+ end
33
+ rescue LoadError
34
+ task :rcov do
35
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
36
+ end
37
+ end
38
+
4
39
 
5
- desc 'Default: run unit tests.'
6
40
  task :default => :test
7
41
 
8
- desc 'Test the ActiveForm plugin.'
9
- Rake::TestTask.new(:test) do |t|
10
- t.libs << 'lib'
11
- t.pattern = 'test/**/*_test.rb'
12
- t.verbose = true
13
- end
42
+ require 'rake/rdoctask'
43
+ Rake::RDocTask.new do |rdoc|
44
+ if File.exist?('VERSION.yml')
45
+ config = YAML.load(File.read('VERSION.yml'))
46
+ version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
47
+ else
48
+ version = ""
49
+ end
14
50
 
15
- desc 'Generate documentation for the ActiveForm plugin.'
16
- Rake::RDocTask.new(:rdoc) do |rdoc|
17
51
  rdoc.rdoc_dir = 'rdoc'
18
- rdoc.title = 'ActiveForm'
19
- rdoc.options << '--line-numbers' << '--inline-source'
20
- rdoc.rdoc_files.include('README')
52
+ rdoc.title = "acts_as_content_node #{version}"
53
+ rdoc.rdoc_files.include('README*')
21
54
  rdoc.rdoc_files.include('lib/**/*.rb')
22
55
  end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.1.1
@@ -0,0 +1,45 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{active_form}
5
+ s.version = "1.1.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Steve England"]
9
+ s.date = %q{2009-06-09}
10
+ s.email = %q{steve@wearebeef.co.uk}
11
+ s.extra_rdoc_files = [
12
+ "README.txt"
13
+ ]
14
+ s.files = [
15
+ ".gitignore",
16
+ "MIT-LICENCE",
17
+ "README.txt",
18
+ "Rakefile",
19
+ "VERSION",
20
+ "active_form.gemspec",
21
+ "init.rb",
22
+ "lib/active_form.rb",
23
+ "test/basic_test.rb",
24
+ "test/test_helper.rb"
25
+ ]
26
+ s.homepage = %q{http://github.com/beef/active_form}
27
+ s.rdoc_options = ["--charset=UTF-8"]
28
+ s.require_paths = ["lib"]
29
+ s.rubygems_version = %q{1.3.3}
30
+ s.summary = %q{Validations for Non Active Record Models}
31
+ s.test_files = [
32
+ "test/basic_test.rb",
33
+ "test/test_helper.rb"
34
+ ]
35
+
36
+ if s.respond_to? :specification_version then
37
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
38
+ s.specification_version = 3
39
+
40
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
41
+ else
42
+ end
43
+ else
44
+ end
45
+ end
data/lib/active_form.rb CHANGED
@@ -1,14 +1,21 @@
1
1
  class ActiveForm
2
2
  def initialize(attributes = nil)
3
- # Mass Assignment implementation
4
- if attributes
5
- attributes.each do |key, value|
6
- self[key] = value
7
- end
8
- end
3
+ self.attributes=(attributes)
9
4
  yield self if block_given?
10
5
  end
11
6
 
7
+ def attributes=(attributes)
8
+ attributes.each do |key, value|
9
+ self[key] = value
10
+ end if attributes
11
+ end
12
+
13
+ def attributes
14
+ attributes = instance_variables
15
+ attributes.delete("@errors")
16
+ Hash[*attributes.collect { |attribute| [attribute[1..-1].to_sym, instance_variable_get(attribute)] }.flatten]
17
+ end
18
+
12
19
  def [](key)
13
20
  instance_variable_get("@#{key}")
14
21
  end
data/test/basic_test.rb CHANGED
@@ -26,7 +26,9 @@ class BasicTest < Test::Unit::TestCase
26
26
  assert_nothing_raised do
27
27
  ct = ContactTest.new(params)
28
28
  assert_valid ct
29
+ assert_equal params[:email], ct.attributes[:email]
29
30
  end
31
+
30
32
  end
31
33
 
32
34
  def test_save_and_create_methods
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beef-active_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve England
@@ -9,39 +9,34 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-08 00:00:00 -07:00
12
+ date: 2009-06-09 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: activerecord
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 2.1.0
24
- version:
14
+ dependencies: []
15
+
25
16
  description:
26
- email: stephen.england@gmail.com
17
+ email: steve@wearebeef.co.uk
27
18
  executables: []
28
19
 
29
20
  extensions: []
30
21
 
31
- extra_rdoc_files: []
32
-
22
+ extra_rdoc_files:
23
+ - README.txt
33
24
  files:
34
- - init.rb
35
- - lib
36
- - lib/active_form.rb
25
+ - .gitignore
37
26
  - MIT-LICENCE
27
+ - README.txt
38
28
  - Rakefile
39
- - test
29
+ - VERSION
30
+ - active_form.gemspec
31
+ - init.rb
32
+ - lib/active_form.rb
33
+ - test/basic_test.rb
34
+ - test/test_helper.rb
40
35
  has_rdoc: false
41
36
  homepage: http://github.com/beef/active_form
42
37
  post_install_message:
43
- rdoc_options: []
44
-
38
+ rdoc_options:
39
+ - --charset=UTF-8
45
40
  require_paths:
46
41
  - lib
47
42
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -61,8 +56,8 @@ requirements: []
61
56
  rubyforge_project:
62
57
  rubygems_version: 1.2.0
63
58
  signing_key:
64
- specification_version: 2
59
+ specification_version: 3
65
60
  summary: Validations for Non Active Record Models
66
61
  test_files:
67
- - test/test_helper.rb
68
62
  - test/basic_test.rb
63
+ - test/test_helper.rb