has_many_polymorphs 2.2 → 2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +0 -9
- data/README +6 -52
- data/TODO +1 -0
- data/generators/tagging/tagging_generator.rb +1 -14
- data/generators/tagging/templates/tag_test.rb +3 -8
- data/generators/tagging/templates/tagging.rb +2 -2
- data/generators/tagging/templates/tagging_extensions.rb +13 -106
- data/generators/tagging/templates/tagging_test.rb +14 -41
- data/generators/tagging/templates/taggings.yml +3 -5
- data/generators/tagging/templates/tags.yml +2 -2
- data/has_many_polymorphs.gemspec +36 -29
- data/lib/has_many_polymorphs.rb +5 -6
- data/lib/has_many_polymorphs/association.rb +8 -9
- data/lib/has_many_polymorphs/autoload.rb +16 -52
- data/lib/has_many_polymorphs/base.rb +3 -13
- data/lib/has_many_polymorphs/class_methods.rb +102 -181
- data/lib/has_many_polymorphs/debugging_tools.rb +0 -2
- data/lib/has_many_polymorphs/dependencies.rb +36 -0
- data/lib/has_many_polymorphs/rake_task_redefine_task.rb +1 -9
- data/lib/has_many_polymorphs/reflection.rb +6 -7
- data/lib/has_many_polymorphs/support_methods.rb +4 -10
- data/test/fixtures/{fish.yml → aquatic/fish.yml} +0 -0
- data/test/fixtures/{little_whale_pupils.yml → aquatic/little_whale_pupils.yml} +0 -0
- data/test/fixtures/{whales.yml → aquatic/whales.yml} +0 -0
- data/test/models/aquatic/fish.rb +1 -2
- data/test/models/aquatic/whale.rb +0 -2
- data/test/models/eaters_foodstuff.rb +3 -1
- data/test/models/petfood.rb +1 -2
- data/test/schema.rb +0 -15
- data/test/test_helper.rb +18 -39
- data/test/unit/{has_many_polymorphs_test.rb → polymorph_test.rb} +109 -181
- metadata +92 -265
- data.tar.gz.sig +0 -1
- data/Manifest +0 -173
- data/Rakefile +0 -28
- data/examples/hmph.rb +0 -69
- data/lib/has_many_polymorphs/configuration.rb +0 -19
- data/test/fixtures/people.yml +0 -7
- data/test/generator/tagging_generator_test.rb +0 -42
- data/test/integration/app/README +0 -182
- data/test/integration/app/Rakefile +0 -19
- data/test/integration/app/app/controllers/application.rb +0 -7
- data/test/integration/app/app/controllers/bones_controller.rb +0 -5
- data/test/integration/app/app/helpers/addresses_helper.rb +0 -2
- data/test/integration/app/app/helpers/application_helper.rb +0 -3
- data/test/integration/app/app/helpers/bones_helper.rb +0 -2
- data/test/integration/app/app/helpers/sellers_helper.rb +0 -28
- data/test/integration/app/app/helpers/states_helper.rb +0 -2
- data/test/integration/app/app/helpers/users_helper.rb +0 -2
- data/test/integration/app/app/models/bone.rb +0 -2
- data/test/integration/app/app/models/double_sti_parent.rb +0 -2
- data/test/integration/app/app/models/double_sti_parent_relationship.rb +0 -2
- data/test/integration/app/app/models/organic_substance.rb +0 -2
- data/test/integration/app/app/models/single_sti_parent.rb +0 -4
- data/test/integration/app/app/models/single_sti_parent_relationship.rb +0 -4
- data/test/integration/app/app/models/stick.rb +0 -2
- data/test/integration/app/app/models/stone.rb +0 -2
- data/test/integration/app/app/views/addresses/edit.html.erb +0 -12
- data/test/integration/app/app/views/addresses/index.html.erb +0 -18
- data/test/integration/app/app/views/addresses/new.html.erb +0 -11
- data/test/integration/app/app/views/addresses/show.html.erb +0 -3
- data/test/integration/app/app/views/bones/index.rhtml +0 -5
- data/test/integration/app/app/views/layouts/addresses.html.erb +0 -17
- data/test/integration/app/app/views/layouts/sellers.html.erb +0 -17
- data/test/integration/app/app/views/layouts/states.html.erb +0 -17
- data/test/integration/app/app/views/layouts/users.html.erb +0 -17
- data/test/integration/app/app/views/sellers/edit.html.erb +0 -12
- data/test/integration/app/app/views/sellers/index.html.erb +0 -20
- data/test/integration/app/app/views/sellers/new.html.erb +0 -11
- data/test/integration/app/app/views/sellers/show.html.erb +0 -3
- data/test/integration/app/app/views/states/edit.html.erb +0 -12
- data/test/integration/app/app/views/states/index.html.erb +0 -19
- data/test/integration/app/app/views/states/new.html.erb +0 -11
- data/test/integration/app/app/views/states/show.html.erb +0 -3
- data/test/integration/app/app/views/users/edit.html.erb +0 -12
- data/test/integration/app/app/views/users/index.html.erb +0 -22
- data/test/integration/app/app/views/users/new.html.erb +0 -11
- data/test/integration/app/app/views/users/show.html.erb +0 -3
- data/test/integration/app/config/boot.rb +0 -110
- data/test/integration/app/config/database.yml +0 -17
- data/test/integration/app/config/environment.rb +0 -19
- data/test/integration/app/config/environment.rb.canonical +0 -19
- data/test/integration/app/config/environments/development.rb +0 -9
- data/test/integration/app/config/environments/production.rb +0 -18
- data/test/integration/app/config/environments/test.rb +0 -19
- data/test/integration/app/config/locomotive.yml +0 -6
- data/test/integration/app/config/routes.rb +0 -33
- data/test/integration/app/config/ultrasphinx/default.base +0 -56
- data/test/integration/app/config/ultrasphinx/development.conf.canonical +0 -155
- data/test/integration/app/db/migrate/001_create_sticks.rb +0 -11
- data/test/integration/app/db/migrate/002_create_stones.rb +0 -11
- data/test/integration/app/db/migrate/003_create_organic_substances.rb +0 -11
- data/test/integration/app/db/migrate/004_create_bones.rb +0 -8
- data/test/integration/app/db/migrate/005_create_single_sti_parents.rb +0 -11
- data/test/integration/app/db/migrate/006_create_double_sti_parents.rb +0 -11
- data/test/integration/app/db/migrate/007_create_single_sti_parent_relationships.rb +0 -13
- data/test/integration/app/db/migrate/008_create_double_sti_parent_relationships.rb +0 -14
- data/test/integration/app/db/migrate/009_create_library_model.rb +0 -11
- data/test/integration/app/doc/README_FOR_APP +0 -2
- data/test/integration/app/generators/commenting_generator_test.rb +0 -83
- data/test/integration/app/lib/library_model.rb +0 -2
- data/test/integration/app/public/404.html +0 -30
- data/test/integration/app/public/500.html +0 -30
- data/test/integration/app/public/dispatch.cgi +0 -10
- data/test/integration/app/public/dispatch.fcgi +0 -24
- data/test/integration/app/public/dispatch.rb +0 -10
- data/test/integration/app/public/favicon.ico +0 -0
- data/test/integration/app/public/images/rails.png +0 -0
- data/test/integration/app/public/index.html +0 -277
- data/test/integration/app/public/javascripts/application.js +0 -2
- data/test/integration/app/public/javascripts/controls.js +0 -833
- data/test/integration/app/public/javascripts/dragdrop.js +0 -942
- data/test/integration/app/public/javascripts/effects.js +0 -1088
- data/test/integration/app/public/javascripts/prototype.js +0 -2515
- data/test/integration/app/public/robots.txt +0 -1
- data/test/integration/app/public/stylesheets/scaffold.css +0 -74
- data/test/integration/app/script/about +0 -3
- data/test/integration/app/script/breakpointer +0 -3
- data/test/integration/app/script/console +0 -3
- data/test/integration/app/script/destroy +0 -3
- data/test/integration/app/script/generate +0 -3
- data/test/integration/app/script/performance/benchmarker +0 -3
- data/test/integration/app/script/performance/profiler +0 -3
- data/test/integration/app/script/plugin +0 -3
- data/test/integration/app/script/process/inspector +0 -3
- data/test/integration/app/script/process/reaper +0 -3
- data/test/integration/app/script/process/spawner +0 -3
- data/test/integration/app/script/runner +0 -3
- data/test/integration/app/script/server +0 -3
- data/test/integration/app/test/fixtures/double_sti_parent_relationships.yml +0 -7
- data/test/integration/app/test/fixtures/double_sti_parents.yml +0 -7
- data/test/integration/app/test/fixtures/organic_substances.yml +0 -5
- data/test/integration/app/test/fixtures/single_sti_parent_relationships.yml +0 -7
- data/test/integration/app/test/fixtures/single_sti_parents.yml +0 -7
- data/test/integration/app/test/fixtures/sticks.yml +0 -7
- data/test/integration/app/test/fixtures/stones.yml +0 -7
- data/test/integration/app/test/functional/addresses_controller_test.rb +0 -57
- data/test/integration/app/test/functional/bones_controller_test.rb +0 -8
- data/test/integration/app/test/functional/sellers_controller_test.rb +0 -57
- data/test/integration/app/test/functional/states_controller_test.rb +0 -57
- data/test/integration/app/test/functional/users_controller_test.rb +0 -57
- data/test/integration/app/test/test_helper.rb +0 -8
- data/test/integration/app/test/unit/bone_test.rb +0 -8
- data/test/integration/app/test/unit/double_sti_parent_relationship_test.rb +0 -8
- data/test/integration/app/test/unit/double_sti_parent_test.rb +0 -8
- data/test/integration/app/test/unit/organic_substance_test.rb +0 -8
- data/test/integration/app/test/unit/single_sti_parent_relationship_test.rb +0 -8
- data/test/integration/app/test/unit/single_sti_parent_test.rb +0 -8
- data/test/integration/app/test/unit/stick_test.rb +0 -8
- data/test/integration/app/test/unit/stone_test.rb +0 -8
- data/test/integration/server_test.rb +0 -43
- data/test/models/parentship.rb +0 -4
- data/test/models/person.rb +0 -9
- data/test/patches/symlinked_plugins_1.2.6.diff +0 -46
- data/test/setup.rb +0 -14
- metadata.gz.sig +0 -0
data/Rakefile
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'echoe'
|
3
|
-
|
4
|
-
Echoe.new("has_many_polymorphs") do |p|
|
5
|
-
p.project = "fauna"
|
6
|
-
p.summary = "An ActiveRecord plugin for self-referential and double-sided polymorphic associations."
|
7
|
-
p.url = "http://blog.evanweaver.com/files/doc/fauna/has_many_polymorphs/"
|
8
|
-
p.docs_host = "blog.evanweaver.com:~/www/bax/public/files/doc/"
|
9
|
-
p.dependencies = ["activerecord"]
|
10
|
-
p.rdoc_pattern = /polymorphs\/association|polymorphs\/class_methods|polymorphs\/reflection|polymorphs\/autoload|polymorphs\/configuration|README|CHANGELOG|TODO|LICENSE|templates\/migration\.rb|templates\/tag\.rb|templates\/tagging\.rb|templates\/tagging_extensions\.rb/
|
11
|
-
p.require_signed = true
|
12
|
-
p.clean_pattern += ["**/ruby_sess*", "**/generated_models/**"]
|
13
|
-
p.test_pattern = ["test/unit/*_test.rb", "test/integration/*_test.rb", "test/generator/*_test.rb"]
|
14
|
-
end
|
15
|
-
|
16
|
-
desc "Run all the tests for every database adapter"
|
17
|
-
task "test_all" do
|
18
|
-
['mysql', 'postgresql', 'sqlite3'].each do |adapter|
|
19
|
-
ENV['DB'] = adapter
|
20
|
-
ENV['PRODUCTION'] = nil
|
21
|
-
STDERR.puts "#{'='*80}\nDevelopment mode for #{adapter}\n#{'='*80}"
|
22
|
-
system("rake test:multi_rails:all")
|
23
|
-
|
24
|
-
ENV['PRODUCTION'] = '1'
|
25
|
-
STDERR.puts "#{'='*80}\nProduction mode for #{adapter}\n#{'='*80}"
|
26
|
-
system("rake test:multi_rails:all")
|
27
|
-
end
|
28
|
-
end
|
data/examples/hmph.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'camping'
|
2
|
-
require 'has_many_polymorphs'
|
3
|
-
|
4
|
-
Camping.goes :Hmph
|
5
|
-
|
6
|
-
module Hmph::Models
|
7
|
-
class GuestsKennel < Base
|
8
|
-
belongs_to :kennel
|
9
|
-
belongs_to :guest, :polymorphic => true
|
10
|
-
end
|
11
|
-
|
12
|
-
class Dog < Base
|
13
|
-
end
|
14
|
-
|
15
|
-
class Cat < Base
|
16
|
-
end
|
17
|
-
|
18
|
-
class Bird < Base
|
19
|
-
end
|
20
|
-
|
21
|
-
class Kennel < Base
|
22
|
-
has_many_polymorphs :guests,
|
23
|
-
:from => [:dogs, :cats, :birds],
|
24
|
-
:through => :guests_kennels,
|
25
|
-
:namespace => :"hmph/models/"
|
26
|
-
end
|
27
|
-
|
28
|
-
class InitialSchema < V 1.0
|
29
|
-
def self.up
|
30
|
-
create_table :hmph_kennels do |t|
|
31
|
-
t.column :created_at, :datetime
|
32
|
-
t.column :modified_at, :datetime
|
33
|
-
t.column :name, :string, :default => 'Anonymous Kennel'
|
34
|
-
end
|
35
|
-
|
36
|
-
create_table :hmph_guests_kennels do |t|
|
37
|
-
t.column :guest_id, :integer
|
38
|
-
t.column :guest_type, :string
|
39
|
-
t.column :kennel_id, :integer
|
40
|
-
end
|
41
|
-
|
42
|
-
create_table :hmph_dogs do |t|
|
43
|
-
t.column :name, :string, :default => 'Fido'
|
44
|
-
end
|
45
|
-
|
46
|
-
create_table :hmph_cats do |t|
|
47
|
-
t.column :name, :string, :default => 'Morris'
|
48
|
-
end
|
49
|
-
|
50
|
-
create_table :hmph_birds do |t|
|
51
|
-
t.column :name, :string, :default => 'Polly'
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def self.down
|
56
|
-
drop_table :hmph_kennels
|
57
|
-
drop_table :hmph_guests_kennels
|
58
|
-
drop_table :hmph_dogs
|
59
|
-
drop_table :hmph_cats
|
60
|
-
drop_table :hmph_birds
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
module Hmph::Controllers
|
66
|
-
end
|
67
|
-
|
68
|
-
module Hmph::Views
|
69
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
|
2
|
-
=begin rdoc
|
3
|
-
Access the <tt>has_many_polymorphs_options</tt> hash in your Rails::Initializer.run#after_initialize block if you need to modify the behavior of Rails::Initializer::HasManyPolymorphsAutoload.
|
4
|
-
=end
|
5
|
-
|
6
|
-
module Rails #:nodoc:
|
7
|
-
class Configuration
|
8
|
-
|
9
|
-
def has_many_polymorphs_options
|
10
|
-
::HasManyPolymorphs.options
|
11
|
-
end
|
12
|
-
|
13
|
-
def has_many_polymorphs_options=(hash)
|
14
|
-
::HasManyPolymorphs.options = HashWithIndifferentAccess.new(hash)
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
data/test/fixtures/people.yml
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
3
|
-
|
4
|
-
class TaggingGeneratorTest < ActiveSupport::TestCase
|
5
|
-
|
6
|
-
def setup
|
7
|
-
Dir.chdir RAILS_ROOT do
|
8
|
-
truncate
|
9
|
-
|
10
|
-
# Revert environment lib requires
|
11
|
-
FileUtils.cp "config/environment.rb.canonical", "config/environment.rb"
|
12
|
-
|
13
|
-
# Delete generator output
|
14
|
-
["app/models/tag.rb", "app/models/tagging.rb",
|
15
|
-
"test/unit/tag_test.rb", "test/unit/tagging_test.rb",
|
16
|
-
"test/fixtures/tags.yml", "test/fixtures/taggings.yml",
|
17
|
-
"lib/tagging_extensions.rb",
|
18
|
-
"db/migrate/010_create_tags_and_taggings.rb"].each do |file|
|
19
|
-
File.delete file if File.exist? file
|
20
|
-
end
|
21
|
-
|
22
|
-
# Rebuild database
|
23
|
-
Echoe.silence do
|
24
|
-
system("ruby #{HERE}/setup.rb")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
alias :teardown :setup
|
30
|
-
|
31
|
-
def test_generator
|
32
|
-
Dir.chdir RAILS_ROOT do
|
33
|
-
Echoe.silence do
|
34
|
-
assert system("script/generate tagging Stick Stone -q -f")
|
35
|
-
assert system("rake db:migrate")
|
36
|
-
assert system("rake db:fixtures:load")
|
37
|
-
assert system("rake test:units")
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
data/test/integration/app/README
DELETED
@@ -1,182 +0,0 @@
|
|
1
|
-
== Welcome to Rails
|
2
|
-
|
3
|
-
Rails is a web-application and persistence framework that includes everything
|
4
|
-
needed to create database-backed web-applications according to the
|
5
|
-
Model-View-Control pattern of separation. This pattern splits the view (also
|
6
|
-
called the presentation) into "dumb" templates that are primarily responsible
|
7
|
-
for inserting pre-built data in between HTML tags. The model contains the
|
8
|
-
"smart" domain objects (such as Account, Product, Person, Post) that holds all
|
9
|
-
the business logic and knows how to persist themselves to a database. The
|
10
|
-
controller handles the incoming requests (such as Save New Account, Update
|
11
|
-
Product, Show Post) by manipulating the model and directing data to the view.
|
12
|
-
|
13
|
-
In Rails, the model is handled by what's called an object-relational mapping
|
14
|
-
layer entitled Active Record. This layer allows you to present the data from
|
15
|
-
database rows as objects and embellish these data objects with business logic
|
16
|
-
methods. You can read more about Active Record in
|
17
|
-
link:files/vendor/rails/activerecord/README.html.
|
18
|
-
|
19
|
-
The controller and view are handled by the Action Pack, which handles both
|
20
|
-
layers by its two parts: Action View and Action Controller. These two layers
|
21
|
-
are bundled in a single package due to their heavy interdependence. This is
|
22
|
-
unlike the relationship between the Active Record and Action Pack that is much
|
23
|
-
more separate. Each of these packages can be used independently outside of
|
24
|
-
Rails. You can read more about Action Pack in
|
25
|
-
link:files/vendor/rails/actionpack/README.html.
|
26
|
-
|
27
|
-
|
28
|
-
== Getting started
|
29
|
-
|
30
|
-
1. At the command prompt, start a new rails application using the rails command
|
31
|
-
and your application name. Ex: rails myapp
|
32
|
-
(If you've downloaded rails in a complete tgz or zip, this step is already done)
|
33
|
-
2. Change directory into myapp and start the web server: <tt>script/server</tt> (run with --help for options)
|
34
|
-
3. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!"
|
35
|
-
4. Follow the guidelines to start developing your application
|
36
|
-
|
37
|
-
|
38
|
-
== Web Servers
|
39
|
-
|
40
|
-
By default, Rails will try to use Mongrel and lighttpd if they are installed, otherwise
|
41
|
-
Rails will use the WEBrick, the webserver that ships with Ruby. When you run script/server,
|
42
|
-
Rails will check if Mongrel exists, then lighttpd and finally fall back to WEBrick. This ensures
|
43
|
-
that you can always get up and running quickly.
|
44
|
-
|
45
|
-
Mongrel is a Ruby-based webserver with a C-component (which requires compilation) that is
|
46
|
-
suitable for development and deployment of Rails applications. If you have Ruby Gems installed,
|
47
|
-
getting up and running with mongrel is as easy as: <tt>gem install mongrel</tt>.
|
48
|
-
More info at: http://mongrel.rubyforge.org
|
49
|
-
|
50
|
-
If Mongrel is not installed, Rails will look for lighttpd. It's considerably faster than
|
51
|
-
Mongrel and WEBrick and also suited for production use, but requires additional
|
52
|
-
installation and currently only works well on OS X/Unix (Windows users are encouraged
|
53
|
-
to start with Mongrel). We recommend version 1.4.11 and higher. You can download it from
|
54
|
-
http://www.lighttpd.net.
|
55
|
-
|
56
|
-
And finally, if neither Mongrel or lighttpd are installed, Rails will use the built-in Ruby
|
57
|
-
web server, WEBrick. WEBrick is a small Ruby web server suitable for development, but not
|
58
|
-
for production.
|
59
|
-
|
60
|
-
But of course its also possible to run Rails on any platform that supports FCGI.
|
61
|
-
Apache, LiteSpeed, IIS are just a few. For more information on FCGI,
|
62
|
-
please visit: http://wiki.rubyonrails.com/rails/pages/FastCGI
|
63
|
-
|
64
|
-
|
65
|
-
== Debugging Rails
|
66
|
-
|
67
|
-
Have "tail -f" commands running on the server.log and development.log. Rails will
|
68
|
-
automatically display debugging and runtime information to these files. Debugging
|
69
|
-
info will also be shown in the browser on requests from 127.0.0.1.
|
70
|
-
|
71
|
-
|
72
|
-
== Breakpoints
|
73
|
-
|
74
|
-
Breakpoint support is available through the script/breakpointer client. This
|
75
|
-
means that you can break out of execution at any point in the code, investigate
|
76
|
-
and change the model, AND then resume execution! Example:
|
77
|
-
|
78
|
-
class WeblogController < ActionController::Base
|
79
|
-
def index
|
80
|
-
@posts = Post.find(:all)
|
81
|
-
breakpoint "Breaking out from the list"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
So the controller will accept the action, run the first line, then present you
|
86
|
-
with a IRB prompt in the breakpointer window. Here you can do things like:
|
87
|
-
|
88
|
-
Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint'
|
89
|
-
|
90
|
-
>> @posts.inspect
|
91
|
-
=> "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>,
|
92
|
-
#<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]"
|
93
|
-
>> @posts.first.title = "hello from a breakpoint"
|
94
|
-
=> "hello from a breakpoint"
|
95
|
-
|
96
|
-
...and even better is that you can examine how your runtime objects actually work:
|
97
|
-
|
98
|
-
>> f = @posts.first
|
99
|
-
=> #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>
|
100
|
-
>> f.
|
101
|
-
Display all 152 possibilities? (y or n)
|
102
|
-
|
103
|
-
Finally, when you're ready to resume execution, you press CTRL-D
|
104
|
-
|
105
|
-
|
106
|
-
== Console
|
107
|
-
|
108
|
-
You can interact with the domain model by starting the console through <tt>script/console</tt>.
|
109
|
-
Here you'll have all parts of the application configured, just like it is when the
|
110
|
-
application is running. You can inspect domain models, change values, and save to the
|
111
|
-
database. Starting the script without arguments will launch it in the development environment.
|
112
|
-
Passing an argument will specify a different environment, like <tt>script/console production</tt>.
|
113
|
-
|
114
|
-
To reload your controllers and models after launching the console run <tt>reload!</tt>
|
115
|
-
|
116
|
-
To reload your controllers and models after launching the console run <tt>reload!</tt>
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
== Description of contents
|
121
|
-
|
122
|
-
app
|
123
|
-
Holds all the code that's specific to this particular application.
|
124
|
-
|
125
|
-
app/controllers
|
126
|
-
Holds controllers that should be named like weblogs_controller.rb for
|
127
|
-
automated URL mapping. All controllers should descend from ApplicationController
|
128
|
-
which itself descends from ActionController::Base.
|
129
|
-
|
130
|
-
app/models
|
131
|
-
Holds models that should be named like post.rb.
|
132
|
-
Most models will descend from ActiveRecord::Base.
|
133
|
-
|
134
|
-
app/views
|
135
|
-
Holds the template files for the view that should be named like
|
136
|
-
weblogs/index.rhtml for the WeblogsController#index action. All views use eRuby
|
137
|
-
syntax.
|
138
|
-
|
139
|
-
app/views/layouts
|
140
|
-
Holds the template files for layouts to be used with views. This models the common
|
141
|
-
header/footer method of wrapping views. In your views, define a layout using the
|
142
|
-
<tt>layout :default</tt> and create a file named default.rhtml. Inside default.rhtml,
|
143
|
-
call <% yield %> to render the view using this layout.
|
144
|
-
|
145
|
-
app/helpers
|
146
|
-
Holds view helpers that should be named like weblogs_helper.rb. These are generated
|
147
|
-
for you automatically when using script/generate for controllers. Helpers can be used to
|
148
|
-
wrap functionality for your views into methods.
|
149
|
-
|
150
|
-
config
|
151
|
-
Configuration files for the Rails environment, the routing map, the database, and other dependencies.
|
152
|
-
|
153
|
-
components
|
154
|
-
Self-contained mini-applications that can bundle together controllers, models, and views.
|
155
|
-
|
156
|
-
db
|
157
|
-
Contains the database schema in schema.rb. db/migrate contains all
|
158
|
-
the sequence of Migrations for your schema.
|
159
|
-
|
160
|
-
doc
|
161
|
-
This directory is where your application documentation will be stored when generated
|
162
|
-
using <tt>rake doc:app</tt>
|
163
|
-
|
164
|
-
lib
|
165
|
-
Application specific libraries. Basically, any kind of custom code that doesn't
|
166
|
-
belong under controllers, models, or helpers. This directory is in the load path.
|
167
|
-
|
168
|
-
public
|
169
|
-
The directory available for the web server. Contains subdirectories for images, stylesheets,
|
170
|
-
and javascripts. Also contains the dispatchers and the default HTML files. This should be
|
171
|
-
set as the DOCUMENT_ROOT of your web server.
|
172
|
-
|
173
|
-
script
|
174
|
-
Helper scripts for automation and generation.
|
175
|
-
|
176
|
-
test
|
177
|
-
Unit and functional tests along with fixtures. When using the script/generate scripts, template
|
178
|
-
test files will be generated for you and placed in this directory.
|
179
|
-
|
180
|
-
vendor
|
181
|
-
External libraries that the application depends on. Also includes the plugins subdirectory.
|
182
|
-
This directory is in the load path.
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
|
-
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
|
-
|
4
|
-
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
|
5
|
-
|
6
|
-
require 'rake'
|
7
|
-
require 'rake/testtask'
|
8
|
-
require 'rake/rdoctask'
|
9
|
-
|
10
|
-
require 'tasks/rails'
|
11
|
-
|
12
|
-
namespace :test do
|
13
|
-
desc "a new rake task to include generators"
|
14
|
-
Rake::TestTask.new(:generators) do |t|
|
15
|
-
t.libs << 'lib'
|
16
|
-
t.test_files = FileList['test/generators/*_test.rb']
|
17
|
-
t.verbose = true
|
18
|
-
end
|
19
|
-
end
|
@@ -1,7 +0,0 @@
|
|
1
|
-
# Filters added to this controller apply to all controllers in the application.
|
2
|
-
# Likewise, all the methods added will be available for all controllers.
|
3
|
-
|
4
|
-
class ApplicationController < ActionController::Base
|
5
|
-
# Pick a unique cookie name to distinguish our session data from others'
|
6
|
-
session :session_key => '_testapp_session_id'
|
7
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module SellersHelper
|
2
|
-
|
3
|
-
def display_address(seller)
|
4
|
-
logger.info "Seller Data ===================="
|
5
|
-
logger.info seller.inspect
|
6
|
-
logger.info "Seller responds to address " + seller.respond_to?("address").to_s
|
7
|
-
logger.info "Seller responds to address= " + seller.respond_to?("address=").to_s
|
8
|
-
# logger.info seller.methods.sort.inspect
|
9
|
-
logger.info "User Data ===================="
|
10
|
-
logger.info seller.user.inspect
|
11
|
-
logger.info "User responds to address " + seller.user.respond_to?("address").to_s
|
12
|
-
logger.info "User responds to address= " + seller.user.respond_to?("address=").to_s
|
13
|
-
# logger.info seller.user.methods.sort.inspect
|
14
|
-
display_address = Array.new
|
15
|
-
if seller.address
|
16
|
-
display_address << seller.address.city if seller.address.city
|
17
|
-
display_address << seller.address.state.abbreviation if seller.address.state && seller.address.state.abbreviation
|
18
|
-
display_address << seller.address.zip_postal_code if seller.address.zip_postal_code
|
19
|
-
end
|
20
|
-
|
21
|
-
unless display_address.empty?
|
22
|
-
"Location: " + display_address.join(", ")
|
23
|
-
else
|
24
|
-
"Location: unknown"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|