1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
|
= EDGE
* Samuel Williams (http://www.oriontransfer.co.nz/):
Thanks to Tekin for his patches.
Updated migrations system to tie in more closely with the current rails mechanism.
Rake task for updating database schema info
rake db:migrate:upgrade_plugin_migrations
Please see http://engines.lighthouseapp.com/projects/10178-engines-plugin/tickets/17 for more information.
* Refactored the view loading to work with changes in Edge Rails
* Fixed integration of plugin migrations with the new, default timestamped migrations in Edge Rails
* Refactored tests into the plugin itself - the plugin can now generate its own test_app harness and run tests within it.
= 2.0.0 - (ANOTHER) MASSIVE INTERNAL REFACTORING
* Engines now conforms to the new plugin loading mechanism, delegating plugin load order and lots of other things to Rails itself.
= 1.2.2
* Added the ability to code mix different types of files, cleaning up the existing code-mixing implementation slightly (Ticket #271)
= 1.2.1
* Added documentation to clarify some of the issues with Rails unloading classes that aren't required using "require_dependency" (Ticket #266)
* Fixed a bug where test_help was being loaded when it wasn't needed, and was actually causing problems (Ticket #265)
= 1.2.0 - MASSIVE INTERNAL REFACTORING
* !!!Support for Rails < 1.2 has been dropped!!!; if you are using Rails =< 1.1.6, please use Engines 1.1.6, available from http://svn.rails-engines.org/engines/tags/rel_1.1.6
* Engines are dead! Long live plugins! There is now no meaningful notion of an engine - all plugins can take advantage of the more powerful features that the engines plugin provides by including app directories, etc.
* Init_engine.rb is no longer used; please use the plugin-standard init.rb instead.
* Engines.start is no longer required; please use the config.plugins array provided by Rails instead
* To get the most benefit from Engines, set config.plugins to ["engines", "*"] to load the engines plugin first, and then all other plugins in their normal order after.
* Access all loaded plugins via the new Rails.plugins array, and by name using Rails.plugins[:plugin_name].
* Access plugin metadata loaded automatically from about.yml: Rails.plugins[:name].about. Plugin#version is provided directly, for easy access.
* Module.config is has been removed - use mattr_accessor instead, and initialize your default values via the init.rb mechanism.
* Public asset helpers have been rewritten; instead of engine_stylesheet, now use stylesheet_link_tag :name, :plugin => "plugin_name"
* Plugin migrations have been reworked to integrate into the main migration stream. Please run script/generate plugin_migration to create plugin migrations in your main application.
* The fixture method for loading fixtures against any class has been removed; instead, engines will now provide a mechanism for loading fixtures from all plugins, by mirroring fixtures into a common location.
* All references to engines have been removed; For example, any rake tasks which applied to engines now apply to all plugins. The default Rails rake tasks for plugins are overridden where necessary.
* Layouts can now be shared via plugins - inspiration gratefully taken from PluginAWeek's plugin_routing :)
* Actual routing from plugins is now possible, by including routes.rb in your plugin directory and using the from_plugin method in config/routes.rb (Ticket #182)
* Controllers are no longer loaded twice if they're not present in the normal app/ directory (Ticket #177)
* The preferred location for javascripts/stylesheets/etc is now 'assets' rather than 'public'
* Ensure that plugins started before routing have their controllers appropriately added to config.controller_paths (Ticket #258)
* Removed Engines.version - it's not longer relevant, now we're loading version information from about.yml files.
* Added a huge amount of documentation to all new modules.
* Added new warning message if installation of engines 1.2.x is attempted in a Rails 1.1.x application
* Added details of the removal of the config method to UPGRADING
* Removed the plugins:info rake task in favour of adding information to script/about via the Rails::Info module (Ticket #261)
* Improved handling of testing and documentation tasks for plugins
= 1.1.4
* Fixed creation of multipart emails (Ticket #190)
* Added a temporary fix to the code-mixing issue. In your engine's test/test_helper.rb, please add the following lines:
# Ensure that the code mixing and view loading from the application is disabled
Engines.disable_app_views_loading = true
Engines.disable_app_code_mixing = true
which will prevent code mixing for controllers and helpers, and loading views from the application. One thing to remember is to load any controllers/helpers using 'require_or_load' in your tests, to ensure that the engine behaviour is respected (Ticket #135)
* Added tasks to easily test engines individually (Ticket #120)
* Fixture extensions will now fail with an exception if the corresponding class cannot be loaded (Ticket #138)
* Patch for new routing/controller loading in Rails 1.1.6. The routing code is now replaced with the contents of config.controller_paths, along with controller paths from any started engines (Ticket #196)
* Rails' Configuration instance is now stored, and available from all engines and plugins.
= 1.1.3
* Fixed README to show 'models' rather than 'model' class (Ticket #167)
* Fixed dependency loading to work with Rails 1.1.4 (Ticket #180)
= 1.1.2
* Added better fix to version checking (Ticket #130, jdell@gbdev.com).
* Fixed generated init_engine.rb so that VERSION module doesn't cause probems (Ticket #131, japgolly@gmail.com)
* Fixed error with Rails 1.0 when trying to ignore the engine_schema_info table (Ticket #132, snowblink@gmail.com)
* Re-added old style rake tasks (Ticket #133)
* No longer adding all subdirectories of <engine>/app or <engine>/lib, as this can cause issues when files are grouped in modules (Ticket #149, kasatani@gmail.com)
* Fixed engine precidence ordering for Rails 1.1 (Ticket #146)
* Added new Engines.each method to assist in processing the engines in the desired order (Ticket #146)
* Fixed annoying error message at appears when starting the console in development mode (Ticket #134)
* Engines is now super-careful about loading the correct version of Rails from vendor (Ticket #154)
= 1.1.1
* Fixed migration rake task failing when given a specific version (Ticket #115)
* Added new rake task "test:engines" which will test engines (and other plugins) but ensure that the test database is cloned from development beforehand (Ticket #125)
* Fixed issue where 'engine_schema_info' table was included in schema dumps (Ticket #87)
* Fixed multi-part emails (Ticket #121)
* Added an 'install.rb' file to new engines created by the bundled generator, which installs the engines plugin automatically if it doesn't already exist (Ticket #122)
* Added a default VERSION module to generated engines (Ticket #123)
* Refactored copying of engine's public files to a method of an Engine instance. You can now call Engines.get(:engine_name).copy_public_files (Ticket #108)
* Changed engine generator templates from .rb files to .erb files (Ticket #106)
* Fixed the test_helper.erb file to use the correct testing extensions and not load any schema - the schema will be cloned automatically via rake test:engines
* Fixed problem when running with Rails 1.1.1 where version wasn't determined correctly (Ticket #129)
* Fixed bug preventing engines from loading when both Rails 1.1.0 and 1.1.1 gems are installed and in use.
* Updated version (d'oh!)
= 1.1.0
* Improved regexp matching for Rails 1.0 engines with peculiar paths
* Engine instance objects can be accessed via Engines[:name], an alias for Engines.get(:name) (Ticket #99)
* init_engine.rb is now processed as the final step in the Engine.start process, so it can access files within the lib directory, which is now in the $LOAD_PATH at that point. (Ticket #99)
* Clarified MIT license (Ticket #98)
* Updated Rake tasks to integrate smoothly with Rails 1.1 namespaces
* Changed the version to "1.1.0 (svn)"
* Added more information about using the plugin with Edge Rails to the README
* moved extensions into lib/engines/ directory to enable use of Engines module in extension code.
* Added conditional require_or_load method which attempts to detect the current Rails version. To use the Edge Rails version of the loading mechanism, add the line:
* Engines.config :edge, true
* to your environment.rb file.
* Merged changes from /branches/edge and /branches/rb_1.0 into /trunk
* engine_schema_info now respects the prefix/suffixes set for ActiveRecord::Base (Ticket #67)
* added ActiveRecord::Base.wrapped_table_name(name) method to assist in determining the correct table name
= 1.0.6
* Added ability to determine version information for engines: rake engine_info
* Added a custom logger for the Engines module, to stop pollution of the Rails logs.
* Added some more tests (in particular, see rails_engines/applications/engines_test).
* Another attempt at solving Ticket #53 - controllers and helpers should now be loadable from modules, and if a full path (including RAILS_ROOT/ENGINES_ROOT) is given, it should be safely stripped from the require filename such that corresponding files can be located in any active engines. In other words, controller/helper overloading should now completely work, even if the controllers/helpers are in modules.
* Added (finally) patch from Ticket #22 - ActionMailer helpers should now load
* Removed support for Engines.start :engine, :engine_name => 'whatever'. It was pointless.
* Fixed engine name referencing; engine_stylesheet/engine_javascript can now happily use shorthand engine names (i.e. :test == :test_engine) (Ticket #45)
* Fixed minor documentation error ('Engine.start' ==> 'Engines.start') (Ticket #57)
* Fixed double inclusion of RAILS_ROOT in engine_migrate rake task (Ticket #61)
* Added ability to force config values even if given as a hash (Ticket #62)
= 1.0.5
* Fixed bug stopping fixtures from loading with PostgreSQL
= 1.0.4
* Another attempt at loading controllers within modules (Ticket #56)
= 1.0.3
* Fixed serious dependency bug stopping controllers being loaded (Ticket #56)
= 1.0.2
* Fixed bug with overloading controllers in modules from /app directory
* Fixed exception thrown when public files couldn't be created; exception is now logged (Ticket #52)
* Fixed problem with generated test_helper.rb file via File.expand_path (Ticket #50)
= 1.0.1
* Added engine generator for creation of new engines
* Fixed 'Engine' typo in README
* Fixed bug in fixtures extensions
* Fixed /lib path management bug
* Added method to determine public directory location from Engine object
* Fixed bug in the error message in get_engine_dir()
* Added proper component loading
* Added preliminary tests for the config() methods module
= pre-v170
* Fixed copyright notices to point to DHH, rather than me.
* Moved extension require statements into lib/engines.rb, so the will be loaded if another module/file calls require 'engines
* Added a CHANGELOG file (this file)
|