Re: [Radiant] trouble packaging extension as gem
thanks to some off-list help from Josh French the extension now works as either a gem or traditional vendored extension. the key change was just to add `unloadable` to the KramdownFilter class. John, I just pushed a change which should make that unnecessary. Gem extensions are now automatically unloaded, just like vendored extensions. Gold star for finding the issue! j ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
[Radiant] trouble packaging extension as gem
i'm at loss now for why it's not appearing in the drop down when loaded as a gem. no errors or anything unusual just a missing filter. I'm actually at a loss as to why it would appear when vendored if you're not explicitly loading that subclass. Radiant doesn't do any pre-loading of filter subclasses in the way that it automatically seeks out and loads Page subclasses. If you look at the textile and markdown extensions that ship within core, you'll see that both of them explicitly load the filter subclass within their #activate methods. It'll be safer to follow their example. j ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
Re: [Radiant] trouble packaging extension as gem
On Tue, Jan 26, 2010 at 8:32 AM, Josh French j...@digitalpulp.com wrote: i'm at loss now for why it's not appearing in the drop down when loaded as a gem. no errors or anything unusual just a missing filter. I'm actually at a loss as to why it would appear when vendored if you're not explicitly loading that subclass. Radiant doesn't do any pre-loading of filter subclasses in the way that it automatically seeks out and loads Page subclasses. If you look at the textile and markdown extensions that ship within core, you'll see that both of them explicitly load the filter subclass within their #activate methods. It'll be safer to follow their example. huh? so you mean this: --- require 'kramdown' class KramdownFilterExtension Radiant::Extension version 1.0 description kramdown is a fast pure-Ruby Markdown converter. url http://kramdown.rubyforge.org/index.html; def activate KramdownFilter end end --- is not explicitly enough? i can't see how that is any different to what the markdown or textile extensions do but i guess it's not. could someone explain how to make it explicit enough for the gem loader? textile_filter --- class TextileFilterExtension Radiant::Extension version 1.0 description Allows you to compose page parts or snippets using the Textile text filter. url http://textism.com/tools/textile/; def activate TextileFilter Page.send :include, TextileTags end end --- markdown_filter --- class MarkdownFilterExtension Radiant::Extension version 1.0 description Allows you to compose page parts or snippets using the Markdown or SmartyPants text filters. url http://daringfireball.net/projects/markdown/; def activate MarkdownFilter SmartyPantsFilter Page.send :include, MarkdownTags end end --- ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
Re: [Radiant] trouble packaging extension as gem
just noticed that extracting the textile_filter extension out into a gem also fails in the exact same ways that i've run into... On Tue, Jan 26, 2010 at 9:13 AM, john muhl johnm...@gmail.com wrote: On Tue, Jan 26, 2010 at 8:32 AM, Josh French j...@digitalpulp.com wrote: i'm at loss now for why it's not appearing in the drop down when loaded as a gem. no errors or anything unusual just a missing filter. I'm actually at a loss as to why it would appear when vendored if you're not explicitly loading that subclass. Radiant doesn't do any pre-loading of filter subclasses in the way that it automatically seeks out and loads Page subclasses. If you look at the textile and markdown extensions that ship within core, you'll see that both of them explicitly load the filter subclass within their #activate methods. It'll be safer to follow their example. or are you talking about this not being explicit enough? --- class KramdownFilter TextFilter description_file File.dirname(__FILE__) + /../markdown.html def filter(text) Kramdown::Document.new(RubyPants.new(text).to_html).to_html end end --- textile_filter --- class TextileFilter TextFilter description_file File.dirname(__FILE__) + /../textile.html def filter(text) RedCloth.new(text).to_html end end --- markdown_filter --- class MarkdownFilter TextFilter description_file File.dirname(__FILE__) + /../markdown.html def filter(text) if defined? RDiscount RDiscount.new(text, :smart).to_html else RubyPants.new(BlueCloth.new(text).to_html).to_html end end end --- again looks the same to me. ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
[Radiant] trouble packaging extension as gem
def activate KramdownFilter end is not explicitly enough? Sorry, misread your post. Yes, this is correct, and you shouldn't need to do anything else. just noticed that extracting the textile_filter extension out into a gem also fails in the exact same ways that i've run into... I'll investigate. Thanks for giving the new extension system a thorough test-drive! j ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
[Radiant] trouble packaging extension as gem
i hope someone can point out what stupid thing i've done in my first attempt to package an extension as a gem. http://gist.github.com/286072 the extension works fine as a regular extension. i'm trying this on the edge (current as of about an hour ago). ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
Re: [Radiant] trouble packaging extension as gem
On Jan 25, 2010, at 1:08 PM, john muhl wrote: i hope someone can point out what stupid thing i've done in my first attempt to package an extension as a gem. http://gist.github.com/286072 the extension works fine as a regular extension. i'm trying this on the edge (current as of about an hour ago). It's probably a load order problem. Radiant adds the method to_name to String and perhaps it doesn't exist when KramdownFilter is loaded. http://github.com/radiant/radiant/blob/master/lib/plugins/string_extensions/lib/string_extensions.rb#L10-L12 Perhaps you can require that file in the extension, or maybe Radiant needs to address this by changing the load order ( since extensions as gems is the future). -Jim Jim Gay http://www.saturnflyer.com ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
Re: [Radiant] trouble packaging extension as gem
Actually, I imagine :lib = false would do the trick -- gem requirements are loaded before extensions. As long as your extension file explicitly loads that text filter, you should be fine. Sean On 1/25/10 1:51 PM, Jim Gay wrote: On Jan 25, 2010, at 1:08 PM, john muhl wrote: i hope someone can point out what stupid thing i've done in my first attempt to package an extension as a gem. http://gist.github.com/286072 the extension works fine as a regular extension. i'm trying this on the edge (current as of about an hour ago). It's probably a load order problem. Radiant adds the method to_name to String and perhaps it doesn't exist when KramdownFilter is loaded. http://github.com/radiant/radiant/blob/master/lib/plugins/string_extensions/lib/string_extensions.rb#L10-L12 Perhaps you can require that file in the extension, or maybe Radiant needs to address this by changing the load order ( since extensions as gems is the future). -Jim Jim Gay http://www.saturnflyer.com ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
Re: [Radiant] trouble packaging extension as gem
both suggestions seem to fix the boot problem but now i don't see the new filter in the drop down. although i do see the extension listed on the extensions page. On Mon, Jan 25, 2010 at 1:05 PM, Sean Cribbs seancri...@gmail.com wrote: Actually, I imagine :lib = false would do the trick -- gem requirements are loaded before extensions. As long as your extension file explicitly loads that text filter, you should be fine. Sean On 1/25/10 1:51 PM, Jim Gay wrote: On Jan 25, 2010, at 1:08 PM, john muhl wrote: i hope someone can point out what stupid thing i've done in my first attempt to package an extension as a gem. http://gist.github.com/286072 the extension works fine as a regular extension. i'm trying this on the edge (current as of about an hour ago). It's probably a load order problem. Radiant adds the method to_name to String and perhaps it doesn't exist when KramdownFilter is loaded. http://github.com/radiant/radiant/blob/master/lib/plugins/string_extensions/lib/string_extensions.rb#L10-L12 Perhaps you can require that file in the extension, or maybe Radiant needs to address this by changing the load order ( since extensions as gems is the future). -Jim Jim Gay http://www.saturnflyer.com ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org
Re: [Radiant] trouble packaging extension as gem
by explicitly loads that text filter you just mean having: def activate KramdownFilter end right? i'm at loss now for why it's not appearing in the drop down when loaded as a gem. no errors or anything unusual just a missing filter. On Mon, Jan 25, 2010 at 1:05 PM, Sean Cribbs seancri...@gmail.com wrote: Actually, I imagine :lib = false would do the trick -- gem requirements are loaded before extensions. As long as your extension file explicitly loads that text filter, you should be fine. Sean On 1/25/10 1:51 PM, Jim Gay wrote: On Jan 25, 2010, at 1:08 PM, john muhl wrote: i hope someone can point out what stupid thing i've done in my first attempt to package an extension as a gem. http://gist.github.com/286072 the extension works fine as a regular extension. i'm trying this on the edge (current as of about an hour ago). It's probably a load order problem. Radiant adds the method to_name to String and perhaps it doesn't exist when KramdownFilter is loaded. http://github.com/radiant/radiant/blob/master/lib/plugins/string_extensions/lib/string_extensions.rb#L10-L12 Perhaps you can require that file in the extension, or maybe Radiant needs to address this by changing the load order ( since extensions as gems is the future). -Jim Jim Gay http://www.saturnflyer.com ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org ___ Radiant mailing list Post: Radiant@radiantcms.org Search: http://radiantcms.org/mailing-list/search/ List Site: http://lists.radiantcms.org/mailman/listinfo/radiant Radiant: http://radiantcms.org Extensions: http://ext.radiantcms.org