One word: Modularity

If it's a simple plugin, it doesn't need to be a Railtie and inserted in
rails
If it's something that extends rails/AR it can be a Railtie and take
advantage of that.
If it's an engine then it makes sense to add the Engine and have the extra
tools Rails::Engine provides.

It's a simple question of remaining flexible to every type of plugin and
not add extra unnecessary code.

On Tue, Jun 5, 2012 at 2:33 PM, Rodrigo Rosenfeld Rosas
<[email protected]>wrote:

>  I'm not that lazy for avoiding to type "--full -T -O" every time I create
> a new gem.
>
> By the way I don't get why 's.add_development_dependency "sqlite3"' is
> added to gemspec when -O is specified.
>
> The problem here is that it seems inconsistent to me for a plugin not to
> be an Engine. I don't even understand why we have so many concepts for
> extending Rails, like plugins, Railtie and Engine.
>
> I guess it would be better to provide a single approach for extending
> Rails 4.
>
> In Rails 1, you could get an app-like tree in your plugin and they would
> be automatically added to the Rails application. It still seems to be the
> case for generators, for example:
>
> http://guides.rubyonrails.org/plugins.html
>
> But then, things changed a lot and what Rails 1 used to call a plugin
> seems to be what an Engine currently is:
>
> http://guides.rubyonrails.org/engines.html
>
> Except that the Engine API is better designed than plugins were by that
> time.
>
> But it doesn't seem consistent to me that you can just drop generators to
> lib/generators in your plugins, but can't drop your assets in lib/assets.
>
> So, I guess that what I'd really want is to always create engines and call
> them plugins.
>
> I can't really understand why you consider useful to have plugins, engines
> and railties as separate concepts.
>
> Best,
> Rodrigo.
>
> Em 05-06-2012 13:48, Luiz Felipe Garcia Pereira escreveu:
>
> It's a "rails plugin new" not "rails engine new".
>
>  It doesn't create a default Engine because not all plugins are engines.
> If it's an engine and not just a plugin/railtie you would normally want
> the "--full" option.
>
>  If not, just create it. It's only 4 lines of code.
>
>  On Tue, Jun 5, 2012 at 1:25 PM, Rodrigo Rosenfeld Rosas <
> [email protected]> wrote:
>
>> But my engines usually don't have any routes and even those who have are
>> not mountable ones.
>>
>> I'm just asking for an engine to be created even for non-mountable
>> engines. I mean, as the default behavior of "rails plugin new plugin-name".
>>
>> The "--full" will add integration tests which I also don't usually
>> include in my gems.
>>
>> Usually I want to bundle some JS libraries as Rails gems for easier reuse
>> among my projects.
>>
>> Basically, I'd like "rails plugin new plugin-name" to be equivalent of
>> "rails plugin new plugin-name --full -T".
>>
>> Does it make sense?
>>
>> Cheers,
>> Rodrigo.
>>
>> Em 05-06-2012 13:17, Luís Ferreira escreveu:
>>
>>>  Yes. Just do "rails new plugin some_example --mountable".
>>>
>>> You should also take a look at --full. ;)
>>> On Jun 5, 2012, at 2:55 PM, Rodrigo Rosenfeld Rosas wrote:
>>>
>>>   What version are you talking about? That doesn't happen on latest
>>>> stable 3.2.5 here.
>>>>
>>>> If that is already implemented in master, then great, I hope it to be
>>>> backported to 3.2.6 when it gets released...
>>>>
>>>> Thanks,
>>>> Rodrigo.
>>>>
>>>> Em 05-06-2012 10:22, Luís Ferreira escreveu:
>>>>
>>>>> It creates the lib/some-example/engine.rb file which is just as you
>>>>> described and then requires it in lib/some-example.rb. Shouldn't that be
>>>>> enough?
>>>>> On Jun 5, 2012, at 2:10 PM, Rodrigo Rosenfeld Rosas wrote:
>>>>>
>>>>>  I've been creating several engines for Rails lately and I found that
>>>>>> having an engine class inherited from Rails::Engine is required if you
>>>>>> intend to bundle some Sprockets assets.
>>>>>>
>>>>>> So, shouldn't the template for "rails plugin new" change so that
>>>>>> "rails plugin new some-example" would create something like:
>>>>>>
>>>>>> lib/some-example.rb:
>>>>>>
>>>>>> module SomeExample
>>>>>>    class Engine<   Rails::Engine
>>>>>>    end
>>>>>> end
>>>>>>
>>>>>> instead of an empty SomeExample module?
>>>>>>
>>>>>> Maybe the "plugin new" could add some option like '--skip-engine' or
>>>>>> disable it automatically if "--skip-sprockets" is used.
>>>>>>
>>>>>> Make sense?
>>>>>>
>>>>>> Kind regards,
>>>>>> Rodrigo.
>>>>>>
>>>>>>   Cumprimentos, Luís Ferreira
>>>>
>>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-core?hl=en.
>



-- 
Luiz Felipe G. Pereira

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to