ddfreyne changed the topic of #nanoc to: 3.6.6 (nov 8th) | web http://nanoc.ws/ | repo http://bit.ly/XE6e3G | issues http://bit.ly/VfXaSV | forum http://ho.io/n-discuss | irclog http://irclog.whitequark.org/nanoc
jarr0dsz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tom[`tom`] is now known as tom[]
alerante has joined #nanoc
alerante has quit [Remote host closed the connection]
alerante has joined #nanoc
alerante has quit [Remote host closed the connection]
VitamineD has joined #nanoc
VitamineD has quit [Quit: VitamineD]
ics_ has joined #nanoc
ics has quit [Ping timeout: 260 seconds]
alerante has joined #nanoc
alerante has quit [Ping timeout: 260 seconds]
jarr0dsz has joined #nanoc
jarr0dsz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
stbuehler has quit [Write error: Connection reset by peer]
stbuehler has joined #nanoc
ics_ has quit [Ping timeout: 245 seconds]
ics has joined #nanoc
alerante has joined #nanoc
alerante has quit [Ping timeout: 265 seconds]
jarr0dsz has joined #nanoc
<guardian> hi
<guardian> anyone familiar with bingbot??? http://pastebin.com/EWVQd5WM it shouldn't be disallowed imho
VitamineD has joined #nanoc
alerante has joined #nanoc
<ddfreyne> guardian: No clue. If you want to prevent “collection“ pages from being indexed, I would recommend using <meta name="robots" content="noindex, follow">
<guardian> yep I was considering it
<guardian> that robots.txt works with google bot
alerante has quit [Ping timeout: 272 seconds]
<ddfreyne> I think <meta> is much nicer than robots.txt
jarr0dsz has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
VitamineD has quit [Ping timeout: 260 seconds]
alerante has joined #nanoc
jugglinmike has joined #nanoc
ics has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<guardian> why
<dkm> bobthecow: re what am I building: I'm re-organizing a bunch of shell scripts I had written to manage a kind of text-based student database
<bobthecow> oh, cool.
<bobthecow> ruby cli apps are awesomer than shell scripts any day :)
<bobthecow> i thought about writing forematter (my frontmatter tool i posted screenshots of) as shell scripts for about a minute. portability would have been awesome. maintaining them would not. ruby wins!
alerante has quit []
<ddfreyne> Yup!
<dkm> bobthecow: yeah, I was running into the issues that we were discussing before with having like 30 commands like mystuff-add-student, mystuff-get-student-repo, etc.
<dkm> because I have a roster that has student ids, names, emails, etc.
<dkm> and then I attach different types of records to individual students
<dkm> like blog feeds
<dkm> assignment summision URLs, etc.
<dkm> and then I want to do things like "for each student, clone the url for assignment 1"
<dkm> or "for each student, review the README file for assignme 1"
<dkm> so every one of those commands needs a consistent way of accessing the roster, and accessing additional pieces of information for each student record
<dkm> anywho, I like what I have gotten started with ruby and cri
<bobthecow> awesome :)
<ddfreyne> dkm: If you have feedback about cri, let me know!
<bobthecow> ddfreyne: i ended up copypasting several things out of nanoc-cli to make my cri do what i wanted. mebbe those could be moved into cri?
<ddfreyne> bobthecow: which ones are those?
<bobthecow> looks like i started by copying a lot, then just ended up using the setup commands stuff.
<bobthecow> having a Cri::App base class could make that a lot easier though.
<ddfreyne> Oh yeah. I need to make that a lot nicer (and actually, nanoc 4.x requires some significant changes to that)
<ddfreyne> You mean the Nanoc::CLI class basically, right?
<ddfreyne> (Or module, whatever it is)
<bobthecow> yeah. that's what i copied from.
<bobthecow> i would assume that a super common use case is a bin file that runs an app, and a lib folder called commands full of commands.
<bobthecow> and maybe a helper class or two.
<ddfreyne> I am running into trouble with external libraries (e.g. nanoc-deploy) defining custom commands but being unable to add their own commands in a nice way
<bobthecow> because it's all currently hardcoded into Nanoc::CLI
<ddfreyne> Yeah. It's icky :(
<bobthecow> every nanoc library with commands should register them in their auto-required file.
<bobthecow> lib/nanoc-deploy.rb, in this case.
<bobthecow> give Nanoc::CLI a class method for registering commands.
<bobthecow> and then have lib/nanoc-cli.rb use that to load all its own commands as an example :)
<bobthecow> honestly, using that file to register any filters, data sources, commands, etc would probably be the best way for plugins to integrate.
<bobthecow> because it's auto-required by bundler, and if you're running without bundler you just tell people to add `require 'nanoc-deploy'` to the top of their nanoc.rb config file.
<bobthecow> and get rid of the `include` in lib/default.rb... replace it with `require 'nanoc-whatever'` in the config file.
ics has joined #nanoc
number-six has quit [Ping timeout: 252 seconds]
jaspervdj has quit [Ping timeout: 260 seconds]
tom[] is now known as chaps[`tom`]
ics has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<dkm> ddfreyne: in https://github.com/nanoc/nanoc/blob/master/lib/nanoc/base/source_data/site.rb#L83 where is the #named method for the DataSource class defined?
<dkm> is this some sort of Ruby smoke and mirrors?
<dkm> I'm implementing something quite similar for my unified database of seperate text-files project
<dkm> oh... i see, it's in the PluginRegistry
VitamineD has joined #nanoc
<ddfreyne> dkm: It is in PluginMethods
<ddfreyne> bobthecow: I agree
<ddfreyne> I am kinda happy with this pull request: https://github.com/nanoc/nanoc/pull/370/files
<ddfreyne> It's a fix *and* get rids of a lot of code
<ddfreyne> s/get rids/gets rid/
<bobthecow> ddfreyne: awesome. no time to test or review right now, but that's rad :)
<ddfreyne> 3.6.7 is going to be pretty big.
ics has joined #nanoc
gnufied_ has quit [Ping timeout: 245 seconds]
<dkm> ddfreyne: have you considered breaking PluginRegistry out into its own project? It doesn't seem to have anything nanoc-specific in it
<dkm> I'm using it as-is in my own
<ddfreyne> dkm: Yeah, it’s pretty stand-alone.
gnufied has joined #nanoc
<ddfreyne> dkm: same for DirectedGraph, Memoization and NotificationCenter
<ddfreyne> and Context
<ddfreyne> in nanoc 4.x, I’ve moved those to a "helper" directory: https://github.com/nanoc/nanoc-core/tree/master/lib/nanoc/core/helper
VitamineD has quit [Quit: VitamineD]
<ddfreyne> dkm: I could put all of those into their own projects, but I am unsure how useful that would be.
VitamineD has joined #nanoc
ics has quit [Ping timeout: 240 seconds]
ics has joined #nanoc
<dkm> ddfreyne: not sure what the rule of thumb is for ruby gems, but I think at least the stuff surrounding PluginRegistry would be useful, I could see people wanting to use that functionality with non-nanoc projects
<dkm> haven't really looked at NotificationCenter
<dkm> right now in my project I "require 'nanoc'" just to get at Nanoc::PluginRegistry::PluginMethods
<dkm> I think combineing that with the parts of CodeSnippet that goes through /lib/*.rb abd loads each file would be pretty useful for anyone writing a tool in which it made sense for the end user to want to extend
<ddfreyne> dkm: I agree that the plugin stuff would be cool to extract
<dkm> ddfreyne: cucumber does something similar, to some extent, not sure what they're doing under the hood
ics has quit [Ping timeout: 252 seconds]
VitamineD has quit [Quit: VitamineD]
VitamineD has joined #nanoc
ics has joined #nanoc
VitamineD has quit [Client Quit]
<ddfreyne> Refresh.
<ddfreyne> This is WIP and needs to be cleaned up, but you get the idea.
<ddfreyne> dkm: API-wise, I think a bit of cleanup is in order. .all should just return all subclasses, for instance, I think.
<ddfreyne> Now off to sleep. night!
<ddfreyne> (Feedback welcome)
ics has quit [Ping timeout: 240 seconds]
chaps[`tom`] is now known as tom[]
ics has joined #nanoc
<dkm> ddfreyne: neat! I'll take a look
ics has quit [Ping timeout: 246 seconds]
ics has joined #nanoc
ics has quit [Ping timeout: 260 seconds]
ics has joined #nanoc