parlement 0.10 → 0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +11 -0
- data/MEMORY +9 -1
- data/README +5 -4
- data/app/controllers/account_controller.rb +10 -13
- data/app/controllers/application.rb +4 -5
- data/app/controllers/elt_controller.rb +9 -7
- data/app/controllers/person_controller.rb +1 -3
- data/app/controllers/subscriber_controller.rb +10 -10
- data/app/helpers/elt_helper.rb +2 -0
- data/app/models/elt.rb +28 -19
- data/app/models/mail.rb +26 -14
- data/app/models/mail_notify.rb +5 -4
- data/app/models/person.rb +11 -2
- data/app/views/account/_login.rhtml +3 -3
- data/app/views/account/_show.rhtml +12 -14
- data/app/views/elt/_choice.rhtml +3 -3
- data/app/views/elt/_elt.rhtml +4 -4
- data/app/views/elt/_list.rhtml +2 -2
- data/app/views/elt/_listByDate.rhtml +1 -1
- data/app/views/elt/_listByVote.rhtml +1 -1
- data/app/views/elt/new.rhtml +3 -3
- data/app/views/elt/show.rhtml +2 -2
- data/app/views/layouts/top.rhtml +6 -0
- data/app/views/mail_notify/publish.text.html.rhtml +1 -1
- data/app/views/person/_listElts.rhtml +5 -3
- data/app/views/person/show.rhtml +1 -2
- data/config/boot.rb +5 -4
- data/config/environment.rb +6 -4
- data/config/routes.rb +3 -2
- data/db/development_structure.sql +15 -4
- data/db/migrate/006_last_activity.rb +10 -0
- data/db/schema.rb +67 -49
- data/public/dispatch.fcgi +1 -0
- data/public/javascripts/controls.js +41 -23
- data/public/javascripts/dragdrop.js +317 -99
- data/public/javascripts/effects.js +301 -166
- data/public/javascripts/prototype.js +932 -402
- data/public/stylesheets/default.css +3 -2
- data/test/unit/elt_test.rb +13 -0
- data/test/unit/mail_test.rb +3 -1
- data/vendor/plugins/engines/CHANGELOG +203 -99
- data/vendor/plugins/engines/MIT-LICENSE +1 -1
- data/vendor/plugins/engines/README +32 -384
- data/vendor/plugins/engines/Rakefile +14 -0
- data/vendor/plugins/engines/UPGRADING +93 -0
- data/vendor/plugins/engines/about.yml +7 -0
- data/vendor/plugins/engines/generators/plugin_migration/USAGE +45 -0
- data/vendor/plugins/engines/generators/plugin_migration/plugin_migration_generator.rb +79 -0
- data/vendor/plugins/engines/generators/plugin_migration/templates/plugin_migration.erb +13 -0
- data/vendor/plugins/engines/init.rb +34 -47
- data/vendor/plugins/engines/install.rb +32 -0
- data/vendor/plugins/engines/lib/engines/{ruby_extensions.rb → deprecated_config_support.rb} +135 -113
- data/vendor/plugins/engines/lib/engines/plugin.rb +214 -0
- data/vendor/plugins/engines/lib/engines/plugin_list.rb +31 -0
- data/vendor/plugins/engines/lib/engines/plugin_migrator.rb +60 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/active_record.rb +19 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/dependencies.rb +143 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/migrations.rb +155 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/public_asset_helpers.rb +116 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/rails.rb +20 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/rails_initializer.rb +86 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb +77 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions/templates.rb +140 -0
- data/vendor/plugins/engines/lib/engines/rails_extensions.rb +6 -0
- data/vendor/plugins/engines/lib/engines/testing.rb +88 -0
- data/vendor/plugins/engines/lib/engines.rb +281 -425
- data/vendor/plugins/engines/tasks/engines.rake +108 -137
- metadata +218 -250
- data/db/ROOT/perso.txt +0 -214
- data/public/images/indicator.gif +0 -0
- data/public/images/orange_by_darren_Hester_350o.jpg +0 -0
- data/public/images/smile.png +0 -0
- data/vendor/plugins/engines/generators/engine/USAGE +0 -26
- data/vendor/plugins/engines/generators/engine/engine_generator.rb +0 -199
- data/vendor/plugins/engines/generators/engine/templates/README +0 -85
- data/vendor/plugins/engines/generators/engine/templates/init_engine.erb +0 -15
- data/vendor/plugins/engines/generators/engine/templates/install.erb +0 -4
- data/vendor/plugins/engines/generators/engine/templates/lib/engine.erb +0 -6
- data/vendor/plugins/engines/generators/engine/templates/licenses/GPL +0 -18
- data/vendor/plugins/engines/generators/engine/templates/licenses/LGPL +0 -19
- data/vendor/plugins/engines/generators/engine/templates/licenses/MIT +0 -22
- data/vendor/plugins/engines/generators/engine/templates/licenses/None +0 -1
- data/vendor/plugins/engines/generators/engine/templates/public/javascripts/engine.js +0 -0
- data/vendor/plugins/engines/generators/engine/templates/public/stylesheets/engine.css +0 -0
- data/vendor/plugins/engines/generators/engine/templates/tasks/engine.rake +0 -0
- data/vendor/plugins/engines/generators/engine/templates/test/test_helper.erb +0 -17
- data/vendor/plugins/engines/lib/bundles/require_resource.rb +0 -124
- data/vendor/plugins/engines/lib/bundles.rb +0 -77
- data/vendor/plugins/engines/lib/engines/action_mailer_extensions.rb +0 -140
- data/vendor/plugins/engines/lib/engines/action_view_extensions.rb +0 -141
- data/vendor/plugins/engines/lib/engines/active_record_extensions.rb +0 -21
- data/vendor/plugins/engines/lib/engines/dependencies_extensions.rb +0 -129
- data/vendor/plugins/engines/lib/engines/migration_extensions.rb +0 -53
- data/vendor/plugins/engines/lib/engines/routing_extensions.rb +0 -28
- data/vendor/plugins/engines/lib/engines/testing_extensions.rb +0 -327
- data/vendor/plugins/engines/tasks/deprecated_engines.rake +0 -7
- data/vendor/plugins/engines/test/action_view_extensions_test.rb +0 -9
- data/vendor/plugins/engines/test/ruby_extensions_test.rb +0 -115
- data/vendor/plugins/guid/README.TXT +0 -29
- data/vendor/plugins/guid/init.rb +0 -30
- data/vendor/plugins/guid/lib/usesguid.rb +0 -37
- data/vendor/plugins/guid/lib/uuid22.rb +0 -43
- data/vendor/plugins/guid/lib/uuidtools.rb +0 -572
- data/vendor/plugins/responds_to_parent/MIT-LICENSE +0 -20
- data/vendor/plugins/responds_to_parent/README +0 -42
- data/vendor/plugins/responds_to_parent/Rakefile +0 -22
- data/vendor/plugins/responds_to_parent/init.rb +0 -1
- data/vendor/plugins/responds_to_parent/lib/responds_to_parent.rb +0 -46
- data/vendor/plugins/responds_to_parent/test/responds_to_parent_test.rb +0 -115
@@ -1,28 +0,0 @@
|
|
1
|
-
module ActionController
|
2
|
-
module Routing
|
3
|
-
|
4
|
-
class << self
|
5
|
-
# This holds the global list of valid controller paths
|
6
|
-
attr_accessor :controller_paths
|
7
|
-
end
|
8
|
-
|
9
|
-
class ControllerComponent
|
10
|
-
class << self
|
11
|
-
protected
|
12
|
-
def safe_load_paths #:nodoc:
|
13
|
-
if defined?(RAILS_ROOT)
|
14
|
-
paths = $LOAD_PATH.select do |base|
|
15
|
-
base = File.expand_path(base)
|
16
|
-
# Check that the path matches one of the allowed paths in controller_paths
|
17
|
-
base.match(/^#{ActionController::Routing.controller_paths.map { |p| File.expand_path(p) } * '|'}/)
|
18
|
-
end
|
19
|
-
Engines.log.debug "Engines safe_load_paths: #{paths.inspect}"
|
20
|
-
paths
|
21
|
-
else
|
22
|
-
$LOAD_PATH
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,327 +0,0 @@
|
|
1
|
-
# The Engines testing extensions enable developers to load fixtures into specific
|
2
|
-
# tables irrespective of the name of the fixtures file. This work is heavily based on
|
3
|
-
# patches made by Duane Johnson (canadaduane), viewable at
|
4
|
-
# http://dev.rubyonrails.org/ticket/1911
|
5
|
-
#
|
6
|
-
# Engine developers should supply fixture files in the <engine>/test/fixtures directory
|
7
|
-
# as normal. Within their tests, they should load the fixtures using the 'fixture' command
|
8
|
-
# (rather than the normal 'fixtures' command). For example:
|
9
|
-
#
|
10
|
-
# class UserTest < Test::Unit::TestCase
|
11
|
-
# fixture :users, :table_name => LoginEngine.config(:user_table), :class_name => "User"
|
12
|
-
#
|
13
|
-
# ...
|
14
|
-
#
|
15
|
-
# This will ensure that the fixtures/users.yml file will get loaded into the correct
|
16
|
-
# table, and will use the correct model object class.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
# A FixtureGroup is a set of fixtures identified by a name. Normally, this is the name of the
|
21
|
-
# corresponding fixture filename. For example, when you declare the use of fixtures in a
|
22
|
-
# TestUnit class, like so:
|
23
|
-
# fixtures :users
|
24
|
-
# you are creating a FixtureGroup whose name is 'users', and whose defaults are set such that the
|
25
|
-
# +class_name+, +file_name+ and +table_name+ are guessed from the FixtureGroup's name.
|
26
|
-
class FixtureGroup
|
27
|
-
attr_accessor :table_name, :class_name, :connection
|
28
|
-
attr_reader :group_name, :file_name
|
29
|
-
|
30
|
-
def initialize(file_name, optional_names = {})
|
31
|
-
self.file_name = file_name
|
32
|
-
self.group_name = optional_names[:group_name] || file_name
|
33
|
-
if optional_names[:table_name]
|
34
|
-
self.table_name = optional_names[:table_name]
|
35
|
-
self.class_name = optional_names[:class_name] || Inflector.classify(@table_name.to_s.gsub('.','_'))
|
36
|
-
elsif optional_names[:class_name]
|
37
|
-
self.class_name = optional_names[:class_name]
|
38
|
-
if Object.const_defined?(@class_name)
|
39
|
-
model_class = Object.const_get(@class_name)
|
40
|
-
self.table_name = ActiveRecord::Base.table_name_prefix + model_class.table_name + ActiveRecord::Base.table_name_suffix
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# In case either :table_name or :class_name was not set:
|
45
|
-
self.table_name ||= ActiveRecord::Base.table_name_prefix + @group_name.to_s + ActiveRecord::Base.table_name_suffix
|
46
|
-
self.class_name ||= Inflector.classify(@table_name.to_s.gsub('.','_'))
|
47
|
-
end
|
48
|
-
|
49
|
-
def file_name=(name)
|
50
|
-
@file_name = name.to_s
|
51
|
-
end
|
52
|
-
|
53
|
-
def group_name=(name)
|
54
|
-
@group_name = name.to_sym
|
55
|
-
end
|
56
|
-
|
57
|
-
def class_file_name
|
58
|
-
Inflector.underscore(@class_name)
|
59
|
-
end
|
60
|
-
|
61
|
-
# Instantiate an array of FixtureGroup objects from an array of strings (table_names)
|
62
|
-
def self.array_from_names(names)
|
63
|
-
names.collect { |n| FixtureGroup.new(n) }
|
64
|
-
end
|
65
|
-
|
66
|
-
def hash
|
67
|
-
@group_name.hash
|
68
|
-
end
|
69
|
-
|
70
|
-
def eql?(other)
|
71
|
-
@group_name.eql? other.group_name
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
class Fixtures < YAML::Omap
|
76
|
-
|
77
|
-
def self.instantiate_fixtures(object, fixture_group_name, fixtures, load_instances=true)
|
78
|
-
old_logger_level = ActiveRecord::Base.logger.level
|
79
|
-
ActiveRecord::Base.logger.level = Logger::ERROR
|
80
|
-
|
81
|
-
# table_name.to_s.gsub('.','_') replaced by 'fixture_group_name'
|
82
|
-
object.instance_variable_set "@#{fixture_group_name}", fixtures
|
83
|
-
if load_instances
|
84
|
-
ActiveRecord::Base.silence do
|
85
|
-
fixtures.each do |name, fixture|
|
86
|
-
begin
|
87
|
-
if model = fixture.find
|
88
|
-
object.instance_variable_set "@#{name}", model
|
89
|
-
end
|
90
|
-
rescue FixtureClassNotFound
|
91
|
-
# Let's hope the developer has included it himself
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
ActiveRecord::Base.logger.level = old_logger_level
|
98
|
-
end
|
99
|
-
|
100
|
-
# this doesn't really need to be overridden...
|
101
|
-
def self.instantiate_all_loaded_fixtures(object, load_instances=true)
|
102
|
-
all_loaded_fixtures.each do |fixture_group_name, fixtures|
|
103
|
-
Fixtures.instantiate_fixtures(object, fixture_group_name, fixtures, load_instances)
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
def self.create_fixtures(fixtures_directory, *fixture_groups)
|
108
|
-
connection = block_given? ? yield : ActiveRecord::Base.connection
|
109
|
-
fixture_groups.flatten!
|
110
|
-
|
111
|
-
# Backwards compatibility: Allow an array of table names to be passed in, but just use them
|
112
|
-
# to create an array of FixtureGroup objects
|
113
|
-
if not fixture_groups.empty? and fixture_groups.first.is_a?(String)
|
114
|
-
fixture_groups = FixtureGroup.array_from_names(fixture_groups)
|
115
|
-
end
|
116
|
-
|
117
|
-
ActiveRecord::Base.silence do
|
118
|
-
fixtures_map = {}
|
119
|
-
fixtures = fixture_groups.map do |group|
|
120
|
-
fixtures_map[group.group_name] = Fixtures.new(connection, fixtures_directory, group)
|
121
|
-
end
|
122
|
-
# Make sure all refs to all_loaded_fixtures use group_name as hash index, not table_name
|
123
|
-
all_loaded_fixtures.merge! fixtures_map
|
124
|
-
|
125
|
-
connection.transaction do
|
126
|
-
fixtures.reverse.each { |fixture| fixture.delete_existing_fixtures }
|
127
|
-
fixtures.each { |fixture| fixture.insert_fixtures }
|
128
|
-
|
129
|
-
# Cap primary key sequences to max(pk).
|
130
|
-
if connection.respond_to?(:reset_pk_sequence!)
|
131
|
-
fixture_groups.each do |fg|
|
132
|
-
connection.reset_pk_sequence!(fg.table_name)
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
return fixtures.size > 1 ? fixtures : fixtures.first
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
|
142
|
-
attr_accessor :connection, :fixtures_directory, :file_filter
|
143
|
-
attr_accessor :fixture_group
|
144
|
-
|
145
|
-
def initialize(connection, fixtures_directory, fixture_group, file_filter = DEFAULT_FILTER_RE)
|
146
|
-
@connection, @fixtures_directory = connection, fixtures_directory
|
147
|
-
@fixture_group = fixture_group
|
148
|
-
@file_filter = file_filter
|
149
|
-
read_fixture_files
|
150
|
-
end
|
151
|
-
|
152
|
-
def delete_existing_fixtures
|
153
|
-
@connection.delete "DELETE FROM #{@fixture_group.table_name}", 'Fixture Delete'
|
154
|
-
end
|
155
|
-
|
156
|
-
def insert_fixtures
|
157
|
-
values.each do |fixture|
|
158
|
-
@connection.execute "INSERT INTO #{@fixture_group.table_name} (#{fixture.key_list}) VALUES (#{fixture.value_list})", 'Fixture Insert'
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
private
|
163
|
-
def read_fixture_files
|
164
|
-
if File.file?(yaml_file_path)
|
165
|
-
read_yaml_fixture_files
|
166
|
-
elsif File.file?(csv_file_path)
|
167
|
-
read_csv_fixture_files
|
168
|
-
elsif File.file?(deprecated_yaml_file_path)
|
169
|
-
raise Fixture::FormatError, ".yml extension required: rename #{deprecated_yaml_file_path} to #{yaml_file_path}"
|
170
|
-
elsif File.directory?(single_file_fixtures_path)
|
171
|
-
read_standard_fixture_files
|
172
|
-
else
|
173
|
-
raise Fixture::FixtureError, "Couldn't find a yaml, csv or standard file to load at #{@fixtures_directory} (#{@fixture_group.file_name})."
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
def read_yaml_fixture_files
|
178
|
-
# YAML fixtures
|
179
|
-
begin
|
180
|
-
if yaml = YAML::load(erb_render(IO.read(yaml_file_path)))
|
181
|
-
yaml = yaml.value if yaml.respond_to?(:type_id) and yaml.respond_to?(:value)
|
182
|
-
yaml.each do |name, data|
|
183
|
-
self[name] = Fixture.new(data, fixture_group.class_name)
|
184
|
-
end
|
185
|
-
end
|
186
|
-
rescue Exception=>boom
|
187
|
-
raise Fixture::FormatError, "a YAML error occured parsing #{yaml_file_path}. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html\nThe exact error was:\n #{boom.class}: #{boom}"
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
def read_csv_fixture_files
|
192
|
-
# CSV fixtures
|
193
|
-
reader = CSV::Reader.create(erb_render(IO.read(csv_file_path)))
|
194
|
-
header = reader.shift
|
195
|
-
i = 0
|
196
|
-
reader.each do |row|
|
197
|
-
data = {}
|
198
|
-
row.each_with_index { |cell, j| data[header[j].to_s.strip] = cell.to_s.strip }
|
199
|
-
self["#{@fixture_group.class_file_name}_#{i+=1}"]= Fixture.new(data, @fixture_group.class_name)
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
def read_standard_fixture_files
|
204
|
-
# Standard fixtures
|
205
|
-
path = File.join(@fixtures_directory, @fixture_group.file_name)
|
206
|
-
Dir.entries(path).each do |file|
|
207
|
-
path = File.join(@fixtures_directory, @fixture_group.file_name, file)
|
208
|
-
if File.file?(path) and file !~ @file_filter
|
209
|
-
self[file] = Fixture.new(path, @fixture_group.class_name)
|
210
|
-
end
|
211
|
-
end
|
212
|
-
end
|
213
|
-
|
214
|
-
def yaml_file_path
|
215
|
-
fixture_path_with_extension ".yml"
|
216
|
-
end
|
217
|
-
|
218
|
-
def deprecated_yaml_file_path
|
219
|
-
fixture_path_with_extension ".yaml"
|
220
|
-
end
|
221
|
-
|
222
|
-
def csv_file_path
|
223
|
-
fixture_path_with_extension ".csv"
|
224
|
-
end
|
225
|
-
|
226
|
-
def single_file_fixtures_path
|
227
|
-
fixture_path_with_extension ""
|
228
|
-
end
|
229
|
-
|
230
|
-
def fixture_path_with_extension(ext)
|
231
|
-
File.join(@fixtures_directory, @fixture_group.file_name + ext)
|
232
|
-
end
|
233
|
-
|
234
|
-
def erb_render(fixture_content)
|
235
|
-
ERB.new(fixture_content).result
|
236
|
-
end
|
237
|
-
|
238
|
-
end
|
239
|
-
|
240
|
-
module Test #:nodoc:
|
241
|
-
module Unit #:nodoc:
|
242
|
-
class TestCase #:nodoc:
|
243
|
-
cattr_accessor :fixtures_directory
|
244
|
-
class_inheritable_accessor :fixture_groups
|
245
|
-
class_inheritable_accessor :fixture_table_names
|
246
|
-
class_inheritable_accessor :use_transactional_fixtures
|
247
|
-
class_inheritable_accessor :use_instantiated_fixtures # true, false, or :no_instances
|
248
|
-
class_inheritable_accessor :pre_loaded_fixtures
|
249
|
-
|
250
|
-
self.fixture_groups = []
|
251
|
-
self.use_transactional_fixtures = false
|
252
|
-
self.use_instantiated_fixtures = true
|
253
|
-
self.pre_loaded_fixtures = false
|
254
|
-
|
255
|
-
@@already_loaded_fixtures = {}
|
256
|
-
|
257
|
-
# Backwards compatibility
|
258
|
-
def self.fixture_path=(path); self.fixtures_directory = path; end
|
259
|
-
def self.fixture_path; self.fixtures_directory; end
|
260
|
-
def fixture_group_names; fixture_groups.collect { |g| g.group_name }; end
|
261
|
-
def fixture_table_names; fixture_group_names; end
|
262
|
-
|
263
|
-
def self.fixture(file_name, options = {})
|
264
|
-
self.fixture_groups |= [FixtureGroup.new(file_name, options)]
|
265
|
-
require_fixture_classes
|
266
|
-
setup_fixture_accessors
|
267
|
-
end
|
268
|
-
|
269
|
-
def self.fixtures(*file_names)
|
270
|
-
self.fixture_groups |= FixtureGroup.array_from_names(file_names.flatten)
|
271
|
-
require_fixture_classes
|
272
|
-
setup_fixture_accessors
|
273
|
-
end
|
274
|
-
|
275
|
-
def self.require_fixture_classes(fixture_groups_override = nil)
|
276
|
-
(fixture_groups_override || fixture_groups).each do |group|
|
277
|
-
begin
|
278
|
-
require group.class_file_name
|
279
|
-
rescue LoadError
|
280
|
-
# Let's hope the developer has included it himself
|
281
|
-
end
|
282
|
-
end
|
283
|
-
end
|
284
|
-
|
285
|
-
def self.setup_fixture_accessors(fixture_groups_override=nil)
|
286
|
-
(fixture_groups_override || fixture_groups).each do |group|
|
287
|
-
define_method(group.group_name) do |fixture, *optionals|
|
288
|
-
force_reload = optionals.shift
|
289
|
-
@fixture_cache[group.group_name] ||= Hash.new
|
290
|
-
@fixture_cache[group.group_name][fixture] = nil if force_reload
|
291
|
-
@fixture_cache[group.group_name][fixture] ||= @loaded_fixtures[group.group_name][fixture.to_s].find
|
292
|
-
end
|
293
|
-
end
|
294
|
-
end
|
295
|
-
|
296
|
-
private
|
297
|
-
def load_fixtures
|
298
|
-
@loaded_fixtures = {}
|
299
|
-
fixtures = Fixtures.create_fixtures(fixtures_directory, fixture_groups)
|
300
|
-
unless fixtures.nil?
|
301
|
-
if fixtures.instance_of?(Fixtures)
|
302
|
-
@loaded_fixtures[fixtures.fixture_group.group_name] = fixtures
|
303
|
-
else
|
304
|
-
fixtures.each { |f| @loaded_fixtures[f.fixture_group.group_name] = f }
|
305
|
-
end
|
306
|
-
end
|
307
|
-
end
|
308
|
-
|
309
|
-
def instantiate_fixtures
|
310
|
-
if pre_loaded_fixtures
|
311
|
-
raise RuntimeError, 'Load fixtures before instantiating them.' if Fixtures.all_loaded_fixtures.empty?
|
312
|
-
unless @@required_fixture_classes
|
313
|
-
groups = Fixtures.all_loaded_fixtures.values.collect { |f| f.group_name }
|
314
|
-
self.class.require_fixture_classes groups
|
315
|
-
@@required_fixture_classes = true
|
316
|
-
end
|
317
|
-
Fixtures.instantiate_all_loaded_fixtures(self, load_instances?)
|
318
|
-
else
|
319
|
-
raise RuntimeError, 'Load fixtures before instantiating them.' if @loaded_fixtures.nil?
|
320
|
-
@loaded_fixtures.each do |fixture_group_name, fixtures|
|
321
|
-
Fixtures.instantiate_fixtures(self, fixture_group_name, fixtures, load_instances?)
|
322
|
-
end
|
323
|
-
end
|
324
|
-
end
|
325
|
-
end
|
326
|
-
end
|
327
|
-
end
|
@@ -1,7 +0,0 @@
|
|
1
|
-
# Old-style engines rake tasks.
|
2
|
-
# NOTE: THESE ARE DEPRICATED! PLEASE USE THE NEW STYLE!
|
3
|
-
|
4
|
-
task :engine_info => "engines:info"
|
5
|
-
task :engine_migrate => "db:migrate:engines"
|
6
|
-
task :enginedoc => "doc:engines"
|
7
|
-
task :load_plugin_fixtures => "db:fixtures:engines:load"
|
@@ -1,115 +0,0 @@
|
|
1
|
-
ENV["RAILS_ENV"] = "test"
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../../../config/environment')
|
3
|
-
require 'test_help'
|
4
|
-
|
5
|
-
class RubyExtensionsTest < Test::Unit::TestCase
|
6
|
-
|
7
|
-
def setup
|
8
|
-
# create the module to be used for config testing
|
9
|
-
eval "module TestModule end"
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
# remove the TestModule constant from our scope
|
14
|
-
self.class.class_eval { remove_const :TestModule }
|
15
|
-
end
|
16
|
-
|
17
|
-
|
18
|
-
#
|
19
|
-
# Module.config
|
20
|
-
#
|
21
|
-
|
22
|
-
def test_config_no_arguments
|
23
|
-
assert_raise(RuntimeError) { TestModule.config }
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_config_array_arguments
|
27
|
-
TestModule.config :monkey, 123
|
28
|
-
assert_equal(123, TestModule.config(:monkey))
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_config_hash_arguments
|
32
|
-
TestModule.config :monkey => 123, :donkey => 456
|
33
|
-
assert_equal(123, TestModule.config(:monkey))
|
34
|
-
assert_equal(456, TestModule.config(:donkey))
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_config_can_store_hash
|
38
|
-
TestModule.config :hash, :key1 => 'val1', :key2 => 'val2'
|
39
|
-
assert_equal({:key1 => 'val1', :key2 => 'val2'}, TestModule.config(:hash))
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_config_cant_overwrite_existing_config_values
|
43
|
-
TestModule.config :monkey, 123
|
44
|
-
assert_equal(123, TestModule.config(:monkey))
|
45
|
-
TestModule.config :monkey, 456
|
46
|
-
assert_equal(123, TestModule.config(:monkey))
|
47
|
-
|
48
|
-
TestModule.config :monkey => 456
|
49
|
-
assert_equal(123, TestModule.config(:monkey))
|
50
|
-
|
51
|
-
# in this case, the resulting Hash only has {:baboon => "goodbye!"} - that's Ruby, users beware.
|
52
|
-
TestModule.config :baboon => "hello", :baboon => "goodbye!"
|
53
|
-
assert_equal("goodbye!", TestModule.config(:baboon))
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_config_force_new_value
|
57
|
-
TestModule.config :monkey, 123
|
58
|
-
TestModule.config :man, 321
|
59
|
-
assert_equal(123, TestModule.config(:monkey))
|
60
|
-
assert_equal(321, TestModule.config(:man))
|
61
|
-
TestModule.config :monkey, 456, :force
|
62
|
-
assert_equal(456, TestModule.config(:monkey))
|
63
|
-
TestModule.config :monkey => 456, :man => 654, :force => true
|
64
|
-
assert_equal(456, TestModule.config(:monkey))
|
65
|
-
assert_equal(654, TestModule.config(:man))
|
66
|
-
TestModule.config :monkey => 789, :man => 987, :force => false
|
67
|
-
assert_equal(456, TestModule.config(:monkey))
|
68
|
-
assert_equal(654, TestModule.config(:man))
|
69
|
-
|
70
|
-
TestModule.config :hash, :key1 => 'val1', :key2 => 'val2'
|
71
|
-
assert_equal({:key1 => 'val1', :key2 => 'val2'}, TestModule.config(:hash))
|
72
|
-
TestModule.config :hash => {:key1 => 'val3', :key2 => 'val4'}, :force => true
|
73
|
-
assert_equal({:key1 => 'val3', :key2 => 'val4'}, TestModule.config(:hash))
|
74
|
-
end
|
75
|
-
|
76
|
-
# this test is somewhat redundant, but it might be an idea to havbe it explictly anyway
|
77
|
-
def test_config_get_values
|
78
|
-
TestModule.config :monkey, 123
|
79
|
-
assert_equal(123, TestModule.config(:monkey))
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_config_get_multiple_values
|
83
|
-
TestModule.config :monkey, 123
|
84
|
-
TestModule.config :donkey, 456
|
85
|
-
assert_equal([123, 456], TestModule.config([:monkey, :donkey]))
|
86
|
-
end
|
87
|
-
|
88
|
-
|
89
|
-
#
|
90
|
-
# Module.default_constant
|
91
|
-
#
|
92
|
-
|
93
|
-
def test_default_constant_set
|
94
|
-
TestModule.default_constant :Monkey, 123
|
95
|
-
assert_equal(123, TestModule::Monkey)
|
96
|
-
TestModule.default_constant "Hello", 456
|
97
|
-
assert_equal(456, TestModule::Hello)
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_default_constant_cannot_set_again
|
101
|
-
TestModule.default_constant :Monkey, 789
|
102
|
-
assert_equal(789, TestModule::Monkey)
|
103
|
-
TestModule.default_constant :Monkey, 456
|
104
|
-
assert_equal(789, TestModule::Monkey)
|
105
|
-
end
|
106
|
-
|
107
|
-
def test_default_constant_bad_arguments
|
108
|
-
# constant names must be Captialized
|
109
|
-
assert_raise(NameError) { TestModule.default_constant :lowercase_name, 123 }
|
110
|
-
|
111
|
-
# constant names should be given as Strings or Symbols
|
112
|
-
assert_raise(RuntimeError) { TestModule.default_constant 123, 456 }
|
113
|
-
assert_raise(RuntimeError) { TestModule.default_constant Object.new, 456 }
|
114
|
-
end
|
115
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# This plugin for ActiveRecord makes the "ID" field into a URL-safe GUID
|
2
|
-
# It is a mashup by Andy Singleton <andy@assembla.com> that includes
|
3
|
-
# * the UUID class from Bob Aman.
|
4
|
-
# * the plugin skeleton from Demetrius Nunes
|
5
|
-
# * the 22 character URL-safe format from Andy Singleton
|
6
|
-
# You can get standard 36 char UUID formats instead
|
7
|
-
# TODO: Auto-detect a character ID field and use a GUID in this case (DRY principle)
|
8
|
-
#
|
9
|
-
# This library is free software; you can redistribute it and/or modify it
|
10
|
-
# under the terms of the MIT license.
|
11
|
-
#
|
12
|
-
# TO USE
|
13
|
-
# Install as a plugin in the rails directory vendor/plugin/guid
|
14
|
-
# define ID as char(22)
|
15
|
-
# call "usesguid" in ActiveRecord class declaration, like
|
16
|
-
class Mymodel < ActiveRecord::Base
|
17
|
-
usesguid
|
18
|
-
|
19
|
-
# if your ID field is not called "ID", call "usesguid :column =>'IdColumnName' "
|
20
|
-
|
21
|
-
# if you create your tables with migrations, you need to bypass the rails default primary key index. Do this:
|
22
|
-
|
23
|
-
create_table :mytable, :id => false do |t|
|
24
|
-
t.column :id, :string, :limit => 22
|
25
|
-
... more fields
|
26
|
-
end
|
27
|
-
|
28
|
-
execute "ALTER TABLE mytable ADD PRIMARY KEY (id)"
|
29
|
-
|
data/vendor/plugins/guid/init.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# Copyright (c) 2005 Assembla, Inc.
|
2
|
-
#
|
3
|
-
# This plugin for ActiveRecord makes the "ID" field into a URL-safe GUID
|
4
|
-
# It is a mashup by Andy Singleton <andy@assembla.com> that includes
|
5
|
-
# * the UUID class from Bob Aman.
|
6
|
-
# * the plugin skeleton from Demetrius Nunes
|
7
|
-
# * the 22 character URL-safe format from Andy Singleton
|
8
|
-
# You can get standard 36 char UUID formats instead
|
9
|
-
# TODO: Auto-detect a character ID field and use a GUID in this case (DRY principle)
|
10
|
-
#
|
11
|
-
# This library is free software; you can redistribute it and/or modify it
|
12
|
-
# under the terms of the MIT license.
|
13
|
-
#
|
14
|
-
# TO USE
|
15
|
-
# Install as a plugin in the rails directory vendor/plugin/guid
|
16
|
-
# define ID as char(22)
|
17
|
-
# call "usesguid" in ActiveRecord class declaration, like
|
18
|
-
# class Mymodel < ActiveRecord::Base
|
19
|
-
# usesguid
|
20
|
-
#
|
21
|
-
# if your ID field is not called "ID", call "usesguid :column =>'IdColumnName' "
|
22
|
-
|
23
|
-
# if you create your tables with migrations, you need to bypass the rails default primary key index. Do this:
|
24
|
-
# create_table :mytable, :id => false do |t|
|
25
|
-
# t.column :id, :string, :limit => 22
|
26
|
-
# ... more fields
|
27
|
-
# end
|
28
|
-
# execute "ALTER TABLE mytable ADD PRIMARY KEY (id)"
|
29
|
-
|
30
|
-
require 'usesguid'
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# from Demetrio Nunes
|
2
|
-
# Modified by Andy Singleton to use different GUID generator
|
3
|
-
#
|
4
|
-
# MIT License
|
5
|
-
|
6
|
-
require 'uuid22'
|
7
|
-
|
8
|
-
module ActiveRecord
|
9
|
-
module Usesguid #:nodoc:
|
10
|
-
|
11
|
-
def self.append_features(base)
|
12
|
-
super
|
13
|
-
base.extend(ClassMethods)
|
14
|
-
end
|
15
|
-
|
16
|
-
|
17
|
-
module ClassMethods
|
18
|
-
|
19
|
-
def usesguid(options = {})
|
20
|
-
|
21
|
-
class_eval do
|
22
|
-
set_primary_key options[:column] if options[:column]
|
23
|
-
|
24
|
-
def after_initialize
|
25
|
-
self.id ||= UUID.timestamp_create().to_s22
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
ActiveRecord::Base.class_eval do
|
36
|
-
include ActiveRecord::Usesguid
|
37
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# Copyright (c) 2005 Assembla, Inc.
|
2
|
-
# MIT License
|
3
|
-
|
4
|
-
require 'uuidtools'
|
5
|
-
|
6
|
-
class UUID
|
7
|
-
|
8
|
-
# Make an array of 64 URL-safe characters
|
9
|
-
@@chars64=('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a + ['-','_']
|
10
|
-
#return a 22 byte URL-safe string, encoded six bits at a time using 64 characters
|
11
|
-
def to_s22
|
12
|
-
integer=self.to_i
|
13
|
-
rval=''
|
14
|
-
22.times do
|
15
|
-
c=(integer & 0x3F)
|
16
|
-
rval+=@@chars64[c]
|
17
|
-
integer =integer >> 6
|
18
|
-
end
|
19
|
-
return rval.reverse
|
20
|
-
end
|
21
|
-
# Create a new UUID from a 22char string
|
22
|
-
def self.parse22(s)
|
23
|
-
# get the integer representation
|
24
|
-
integer=0
|
25
|
-
s.each_byte {|c|
|
26
|
-
integer = integer << 6
|
27
|
-
pos=@@chars64.index(c.chr)
|
28
|
-
integer+=pos
|
29
|
-
}
|
30
|
-
|
31
|
-
time_low = (integer >> 96) & 0xFFFFFFFF
|
32
|
-
time_mid = (integer >> 80) & 0xFFFF
|
33
|
-
time_hi_and_version = (integer >> 64) & 0xFFFF
|
34
|
-
clock_seq_hi_and_reserved = (integer >> 56) & 0xFF
|
35
|
-
clock_seq_low = (integer >> 48) & 0xFF
|
36
|
-
nodes = []
|
37
|
-
for i in 0..5 do
|
38
|
-
nodes << ((integer >> (40 - (i * 8))) & 0xFF)
|
39
|
-
end
|
40
|
-
return new(time_low, time_mid, time_hi_and_version,
|
41
|
-
clock_seq_hi_and_reserved, clock_seq_low, nodes)
|
42
|
-
end
|
43
|
-
end
|