dom_id 0.1.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.
@@ -0,0 +1,3 @@
1
+ == 0.1.0
2
+
3
+ * Converted to gem
@@ -0,0 +1,15 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ about.yml
6
+ init.rb
7
+ lib/dom_id.rb
8
+ test/database.yml
9
+ test/test_dom_id.rb
10
+ test/fixtures/people_thing.rb
11
+ test/fixtures/people_things.yml
12
+ test/fixtures/thing.rb
13
+ test/fixtures/things.yml
14
+ test/schema.rb
15
+ test/test_helper.rb
@@ -0,0 +1,4 @@
1
+ DomId
2
+ =====
3
+
4
+ Description goes here
@@ -0,0 +1,13 @@
1
+ require 'rake'
2
+ require 'hoe'
3
+ require 'lib/dom_id'
4
+
5
+ Hoe.new('dom_id', DomId::VERSION) do |p|
6
+ p.rubyforge_name = 'seattlerb'
7
+ p.author = 'Geoffrey Grosenbach'
8
+ p.email = 'boss AT topfunky.com'
9
+ p.summary = 'Creates a CSS DOM id from an ActiveRecord object.'
10
+ p.description = 'Creates a CSS DOM id from an ActiveRecord object.'
11
+ p.url = "http://rubyforge.org/projects/seattlerb"
12
+ p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
13
+ end
@@ -0,0 +1,7 @@
1
+ author: topfunky
2
+ summary: Creates a dom_id method for generating unique id's in HTML pages.
3
+ homepage: http://codefluency.com/articles/2006/07/02/rails-views-bulletproofing-dom_id/
4
+ plugin: http://topfunky.net/svn/plugins/dom_id
5
+ license: MIT
6
+ version: 0.2
7
+ rails_version: 1.0+
data/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ require File.dirname(__FILE__) + "/lib/dom_id"
2
+ ActiveRecord::Base.send(:include, DomId)
@@ -0,0 +1,20 @@
1
+ module DomId
2
+
3
+ VERSION='0.1.0'
4
+
5
+ ##
6
+ # Implementation of http://codefluency.com/articles/2006/05/30/rails-views-dom-id-scheme
7
+ #
8
+ # comment.dom_id
9
+ # => "comment_15"
10
+ #
11
+ # Use in views and controllers instead of doing "comment_<%= comment.id %>"
12
+ #
13
+ #
14
+ def dom_id(prefix=nil)
15
+ display_id = new_record? ? "new" : id
16
+ prefix = prefix.nil? ? self.class.name.underscore : "#{prefix}_#{self.class.name.underscore}"
17
+ "#{prefix}_#{display_id}"
18
+ end
19
+
20
+ end
@@ -0,0 +1,18 @@
1
+ sqlite:
2
+ :adapter: sqlite
3
+ :dbfile: plugin.sqlite.db
4
+ sqlite3:
5
+ :adapter: sqlite3
6
+ :dbfile: ":memory:"
7
+ postgresql:
8
+ :adapter: postgresql
9
+ :username: postgres
10
+ :password: postgres
11
+ :database: plugin_test
12
+ :min_messages: ERROR
13
+ mysql:
14
+ :adapter: mysql
15
+ :host: localhost
16
+ :username: rails
17
+ :password:
18
+ :database: plugin_test
@@ -0,0 +1,3 @@
1
+ class PeopleThing < ActiveRecord::Base
2
+
3
+ end
@@ -0,0 +1,4 @@
1
+ people_things:
2
+ id: 1
3
+ name: foo
4
+
@@ -0,0 +1,3 @@
1
+ class Thing < ActiveRecord::Base
2
+
3
+ end
@@ -0,0 +1,4 @@
1
+ thing:
2
+ id: 1
3
+ name: foo
4
+
@@ -0,0 +1,11 @@
1
+ ActiveRecord::Schema.define(:version => 1) do
2
+
3
+ create_table :things do |t|
4
+ t.column :name, :string
5
+ end
6
+
7
+ create_table :people_things do |t|
8
+ t.column :name, :string
9
+ end
10
+
11
+ end
@@ -0,0 +1,30 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/test_helper")
2
+
3
+ class Thing < ActiveRecord::Base
4
+
5
+ def new_record?; false; end
6
+
7
+ def id; 1; end
8
+
9
+ end
10
+
11
+ class PeopleThing < ActiveRecord::Base
12
+
13
+ def new_record?; true; end
14
+
15
+ end
16
+
17
+ class TestDomId < Test::Unit::TestCase
18
+
19
+ def test_dom_id
20
+ thing = Thing.new
21
+ assert_equal 'thing_1', thing.dom_id
22
+ end
23
+
24
+ def test_new
25
+ pt = PeopleThing.new
26
+ assert_equal 'people_thing_new', pt.dom_id
27
+ assert_equal 'many_people_thing_new', pt.dom_id('many')
28
+ end
29
+
30
+ end
@@ -0,0 +1,40 @@
1
+ # Include this file in your test by copying the following line to your test:
2
+ # require File.expand_path(File.dirname(__FILE__) + "/test_helper")
3
+
4
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
5
+ RAILS_ROOT = File.dirname(__FILE__)
6
+
7
+ require 'rubygems'
8
+ require 'test/unit'
9
+ require 'active_record'
10
+ require 'active_record/fixtures'
11
+ require 'active_support/binding_of_caller'
12
+ require 'active_support/breakpoint'
13
+ require "#{File.dirname(__FILE__)}/../init"
14
+
15
+ config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
16
+ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
17
+ ActiveRecord::Base.establish_connection(config[ENV['DB'] || 'sqlite3'])
18
+
19
+ load(File.dirname(__FILE__) + "/schema.rb") if File.exist?(File.dirname(__FILE__) + "/schema.rb")
20
+
21
+ Test::Unit::TestCase.fixture_path = File.dirname(__FILE__) + "/fixtures/"
22
+ $LOAD_PATH.unshift(Test::Unit::TestCase.fixture_path)
23
+
24
+ class Test::Unit::TestCase #:nodoc:
25
+ def create_fixtures(*table_names)
26
+ if block_given?
27
+ Fixtures.create_fixtures(Test::Unit::TestCase.fixture_path, table_names) { yield }
28
+ else
29
+ Fixtures.create_fixtures(Test::Unit::TestCase.fixture_path, table_names)
30
+ end
31
+ end
32
+
33
+ # Turn off transactional fixtures if you're working with MyISAM tables in MySQL
34
+ self.use_transactional_fixtures = true
35
+
36
+ # Instantiated fixtures are slow, but give you @david where you otherwise would need people(:david)
37
+ self.use_instantiated_fixtures = false
38
+
39
+ # Add more helper methods to be used by all tests here...
40
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.0
3
+ specification_version: 1
4
+ name: dom_id
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.1.0
7
+ date: 2007-06-24 00:00:00 -07:00
8
+ summary: Creates a CSS DOM id from an ActiveRecord object.
9
+ require_paths:
10
+ - lib
11
+ email: boss AT topfunky.com
12
+ homepage: http://rubyforge.org/projects/seattlerb
13
+ rubyforge_project: seattlerb
14
+ description: Creates a CSS DOM id from an ActiveRecord object.
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Geoffrey Grosenbach
31
+ files:
32
+ - History.txt
33
+ - Manifest.txt
34
+ - README.txt
35
+ - Rakefile
36
+ - about.yml
37
+ - init.rb
38
+ - lib/dom_id.rb
39
+ - test/database.yml
40
+ - test/test_dom_id.rb
41
+ - test/fixtures/people_thing.rb
42
+ - test/fixtures/people_things.yml
43
+ - test/fixtures/thing.rb
44
+ - test/fixtures/things.yml
45
+ - test/schema.rb
46
+ - test/test_helper.rb
47
+ test_files:
48
+ - test/test_dom_id.rb
49
+ - test/test_helper.rb
50
+ rdoc_options:
51
+ - --main
52
+ - README.txt
53
+ extra_rdoc_files:
54
+ - History.txt
55
+ - Manifest.txt
56
+ - README.txt
57
+ executables: []
58
+
59
+ extensions: []
60
+
61
+ requirements: []
62
+
63
+ dependencies:
64
+ - !ruby/object:Gem::Dependency
65
+ name: hoe
66
+ version_requirement:
67
+ version_requirements: !ruby/object:Gem::Version::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 1.2.1
72
+ version: