summary |
shortlog | log |
commit |
commitdiff |
tree
HEAD ⋅ prev ⋅ next
t0m [Sun, 7 Jun 2009 22:36:00 +0000]
And mangle things such that the actual app test works
t0m [Sun, 7 Jun 2009 22:31:54 +0000]
And get the other strategy from master implemented
t0m [Sun, 7 Jun 2009 22:18:55 +0000]
Fix bugs introduced previously
t0m [Sun, 7 Jun 2009 22:02:40 +0000]
Do not munge config
t0m [Sun, 7 Jun 2009 20:47:01 +0000]
First hack at factoring the strategy out, broke the config munging test..
t0m [Sun, 7 Jun 2009 02:36:12 +0000]
Remove unused autobox
t0m [Sun, 7 Jun 2009 02:35:26 +0000]
Able to use strings rather than having to use hash refs
t0m [Sun, 7 Jun 2009 02:05:01 +0000]
Adjust to not munge config
t0m [Sun, 7 Jun 2009 01:59:49 +0000]
We don't use structures types any more
t0m [Sun, 7 Jun 2009 01:58:56 +0000]
Fix tests, add autobox to flatten interface roles so you can use a string or array ref (need to apply this everywhere else we mangle config also), allow app wide config of interface roles
t0m [Sun, 7 Jun 2009 01:21:52 +0000]
Remove the types stuff
t0m [Sun, 7 Jun 2009 01:17:19 +0000]
Add code from gists 12311[56]
t0m [Sun, 7 Jun 2009 01:11:01 +0000]
Add shell for a more complex testapp
t0m [Thu, 28 May 2009 00:34:33 +0000]
Whoops, add the demo type library and the trivial test also
t0m [Thu, 28 May 2009 00:28:24 +0000]
Make the generated action method fit better into what the StompTestApp::Controller::TestController does, viz getting stuff out of ->req->data, and returning ->stash->{response} - this is the correct basic protocol yes?
Also add a type check to the input document (i.e. the deserialized message) using structured and lexical
type constraints. I do this in a method modifier, to illustrate that we can get the reflector
(or something) to apply a modifier like this around every model method.
Tada, instant explosion when the data incoming is bad.
You can do this in the controller action with the response document before you stash it also.
This isn't quite as elegant as applying the types as part of the interface role, but I'm sure we
can work through that if this is considered useful.
t0m [Wed, 27 May 2009 23:45:09 +0000]
And lets have a test that the reflector works in interface role mode
t0m [Wed, 27 May 2009 23:42:24 +0000]
The code which offended me is expunged
t0m [Wed, 27 May 2009 23:41:44 +0000]
Now the config isn't eaten whilst building the model, we can get the interface roles from it
t0m [Wed, 27 May 2009 23:40:16 +0000]
Shitting all over the application config in the model generator was somewhat unfriendly to everything else. Lets add a test for this, which will be a pita to maintain, so pull the config out to YAML and read that in the test? Anyway, this crap explains the difficulty in getting interface_roles out the config..
t0m [Wed, 27 May 2009 23:14:23 +0000]
Merge commit 'chris/master' into use_interface_roles
Chris Andrews [Wed, 27 May 2009 09:24:10 +0000]
Don't clobber the "config" method - it's pretty important. This is
a working approach, but the problem of accessing generated component
configs needs more work.
t0m [Wed, 27 May 2009 08:56:15 +0000]
Merge commit 'chris/master' into use_interface_roles
Chris Andrews [Wed, 27 May 2009 08:27:23 +0000]
Take dispatchable methods from the role(s) applied to the class.
Stashes the config away on the generated classes so it's accessible
even once we've app-namespace-qualified the class name.
Appears to break Catalyst::Action::REST...
Chris Andrews [Tue, 26 May 2009 09:25:26 +0000]
Ignore emacs
t0m [Mon, 25 May 2009 21:28:37 +0000]
Merge branch 'master' of git@github.com:bobtfish/catalyst-dynamicappdemo
Tomas Doran (t0m) [Mon, 25 May 2009 19:57:30 +0000]
Update DynamicComponent so that you just ask for 'Model::Foo' not 'MyApp::Model::Foo', as the component generator is called on anyway so can find 'MyApp for itself
Tomas Doran (t0m) [Mon, 25 May 2009 19:50:29 +0000]
Put controllergeneratingmodel in the right place
Tomas Doran (t0m) [Mon, 25 May 2009 18:08:24 +0000]
More template pod
t0m [Mon, 25 May 2009 17:11:21 +0000]
Hack some of my current thoughts into the TODO
t0m [Mon, 25 May 2009 16:53:42 +0000]
Don't use CMA anywhere any more
t0m [Mon, 25 May 2009 16:53:16 +0000]
Start adding pod to ModelsFromConfig
t0m [Mon, 25 May 2009 16:44:28 +0000]
Nuke the now unused controller role. This will probably be back at some point, but right now it's unused so killing.
t0m [Mon, 25 May 2009 16:41:03 +0000]
move the model to controller reflector into a namespace under dynamiccomponent
t0m [Mon, 25 May 2009 16:26:43 +0000]
Whilst the 'nominate individual methods as dispatchable by their metaclass' strategy is reasonable, we actually want to be able to make the strategies pluggable, and encourage 'class consumes an interface role' as the default way of doing it. Therefore, as I have no intention of documenting it, or really maintaining it to be more useable than as a test case for an alternate method finding implementation, then I'm moving the relevant code to generate those methods down into the tests
t0m [Mon, 25 May 2009 16:20:23 +0000]
Add include/exclude options so that havingModelsFromConfig loaded doesn't involve trying to auto-borg every model which in any way has config. Should I just ignore models which have already been loaded into the app by Catalyst (i.e. have a real 'on disk' class) - I guess so, thoughts chris?
t0m [Mon, 25 May 2009 15:58:01 +0000]
Move CatalystX::ModelsFromConfig => ::DynamicComponent::ModelsFromConfig
t0m [Mon, 25 May 2009 02:56:49 +0000]
Fix test when run with make test
t0m [Mon, 25 May 2009 02:49:08 +0000]
Write CatalystX::ModelsFromConfig::InterfaceRoles
Your model configurations have to have 'interface_roles => [qw/ AtLeast OneRole /]',
and the class has to do those roles, or it all goes bang in a big way.
t0m [Mon, 25 May 2009 02:47:43 +0000]
Give SomeModelClass an interface role which requires a method
t0m [Mon, 25 May 2009 02:46:44 +0000]
Apply roles to component after adding the methods, so methods can advise roles
t0m [Mon, 25 May 2009 02:08:59 +0000]
Add a load more POD
t0m [Mon, 25 May 2009 01:21:33 +0000]
The fake example is now broken as we're not smashing random methods. Fix method generation to use the public API for adding attributes, and what do you know, the rest of it works. Add a lower level test for this
t0m [Mon, 25 May 2009 01:08:59 +0000]
Add more tests for config replacement and make them pass. I seem to have made 10_app.t start to fail at some point
t0m [Mon, 25 May 2009 00:28:51 +0000]
Get rid of all messing with action registration by just stuffing the attributes onto the methods straight after their generated, rather than messing with the action registration process itself. This elegantly cures all cases of accidental methods getting given attributes and so becoming dispatchable
t0m [Mon, 25 May 2009 00:23:42 +0000]
Some more changes needed by the controller reflector, no tests for them yet
t0m [Sun, 24 May 2009 23:55:21 +0000]
We already need 0004, use the new shiny in test app, and turn off debug
t0m [Sun, 24 May 2009 23:44:12 +0000]
Fix POD
t0m [Sun, 24 May 2009 23:41:20 +0000]
Convert the two DynamicComponent clients to use the new protocol. This significantly cleans up the controller reflector
t0m [Sun, 24 May 2009 22:28:56 +0000]
Make the extended tests pass. This is now fairly frightning code ;)
t0m [Sun, 24 May 2009 21:08:54 +0000]
Remove COMPONENT feature, add tests for making the other features generic from currying and config when component generator is invoked + strategies for merging curried / passed component config
t0m [Sun, 24 May 2009 20:47:41 +0000]
Rename app test to run later
t0m [Sun, 24 May 2009 20:45:09 +0000]
Add repos to Makefile.PL, other tweaks
Tomas Doran (t0m) [Sun, 24 May 2009 18:41:51 +0000]
Add more tests for DynamicComponent, and make the config for a new dynamic component saner
Tomas Doran (t0m) [Sun, 24 May 2009 18:12:51 +0000]
Test COMPONENT functionality
Tomas Doran (t0m) [Sun, 24 May 2009 18:03:20 +0000]
Start trivial tests for dynamiccomponent
Tomas Doran (t0m) [Sun, 24 May 2009 17:22:18 +0000]
Add some thoughts / notes to TODO
Tomas Doran (t0m) [Sun, 24 May 2009 17:21:30 +0000]
Add a load of POD
Tomas Doran (t0m) [Sun, 24 May 2009 16:41:46 +0000]
This is for the tests, move over there
Tomas Doran (t0m) [Sat, 23 May 2009 20:28:17 +0000]
Fix so that superclasses and roles get applied from config. This is where the method smashing shows itself as untenable, but I think I have a strategy for that..
Tomas Doran (t0m) [Sat, 23 May 2009 19:55:49 +0000]
Make superclasses and roles tests pass
Tomas Doran (t0m) [Sat, 23 May 2009 19:17:39 +0000]
Failing tests for configured base classes and roles.
Tomas Doran (t0m) [Sat, 23 May 2009 19:17:13 +0000]
Ignore stuff I have open in my editor
Tomas Doran (t0m) [Sat, 23 May 2009 19:16:00 +0000]
MX::Role::Parameterized fixed the bug which meant I had to mention the parameterized role here to get it to compose, by composing right, and as it had no parameters, crapped itself. Bump required version so all the hate goes away
Tomas Doran (t0m) [Sat, 23 May 2009 18:56:20 +0000]
Bump Catalyst dep
Tomas Doran (t0m) [Sat, 23 May 2009 18:54:26 +0000]
Add a base class and a controller role, and some config for the controller builder, so I can write failing tests
Chris Andrews [Fri, 22 May 2009 20:29:55 +0000]
Initial capture of discussion as TODOs.
Tomas Doran (t0m) [Wed, 13 May 2009 11:55:28 +0000]
Make the test work like I want it too. It's a gross hack currently, but now does what it says on the tin
Tomas Doran (t0m) [Wed, 13 May 2009 11:48:05 +0000]
Bad kitty, ->can't('has')
Tomas Doran (t0m) [Wed, 13 May 2009 11:33:23 +0000]
Add auto_install so I get make installdeps
t0m [Thu, 30 Apr 2009 23:02:12 +0000]
FAIL
t0m [Thu, 30 Apr 2009 22:32:43 +0000]
Fix scripts. I also appear to have fucked things so we're getting actions we shouldn't registered. Fail, and the tests don't. DOUBLE FAIL.
t0m [Thu, 30 Apr 2009 22:28:43 +0000]
Whole lotta reorganisation. Moved the app demo down into t/lib, added Module::Install::ExtraTests, as it will goad me into adding POD tests, rip configloader out the test app, I know it works already
t0m [Thu, 30 Apr 2009 22:12:55 +0000]
Convert the controller base class into a role applied to the controller meta. There needs to be a way to config how controllers are generated / their superclass + extra roles and stuff like that
t0m [Sun, 26 Apr 2009 21:59:56 +0000]
Actually only find methods which have been defined with the 'command' syntax..
t0m [Sun, 26 Apr 2009 19:16:13 +0000]
Ok, I don't feel so dirty now. Still need to implement method filtering, such that only methods created with the appropriate metaclass get used
t0m [Sun, 26 Apr 2009 19:01:15 +0000]
Another piece of insantiy factored out
t0m [Sun, 26 Apr 2009 18:57:14 +0000]
Get rid of the insanity of passing the compoenent method as a subref - instead it becomes a role parameter. This gets rid of the insane hack to remove the COMPONENT method from the local package in controllers
t0m [Sun, 26 Apr 2009 18:39:46 +0000]
First step switch to MX::Role::Parameterized
t0m [Fri, 24 Apr 2009 22:51:16 +0000]
Did I mention that I'm rubbish at naming things. I'll start caring about that when I start pulling this shit apart into components for the CPAN when it's past prototype stage. Add stuff to give me syntax to generate methods with a custom metaclass, so that when I introspect - I don't have to use a fucking regex to work out what methods to exclude. We could then sanely support role application, which would be nice - although doing modifiers right is hard. This is also waaay more involved than it should need to be.
t0m [Fri, 24 Apr 2009 22:43:26 +0000]
Hmm...
t0m [Fri, 24 Apr 2009 22:33:12 +0000]
Factor out to smaller routines
t0m [Fri, 24 Apr 2009 22:32:48 +0000]
Ignore more crap
t0m [Fri, 24 Apr 2009 22:24:03 +0000]
Add more epic comments in the 3am badlands code
t0m [Fri, 24 Apr 2009 22:04:31 +0000]
Add stuff to .gitignore
t0m [Fri, 24 Apr 2009 21:56:10 +0000]
Fuck you pod coverage
t0m [Fri, 24 Apr 2009 21:41:35 +0000]
Switch everything to autoclean. Add sanity tests to ensure appropriate modern perl policy compliance ;)
t0m [Fri, 24 Apr 2009 21:31:31 +0000]
Add types::structured, as we need a calling convention.. Add namespace::autoclean as it's less typing, and rafl nagged me to use it
t0m [Fri, 24 Apr 2009 21:30:36 +0000]
The basis for the one true type of controller
Chris Andrews [Fri, 24 Apr 2009 08:05:36 +0000]
Remove hardcoded 'DynamicAppDemo' from reflector - ControllerBase still
hardcoded.
t0m [Thu, 23 Apr 2009 01:16:53 +0000]
Remove LIES in comment
t0m [Thu, 23 Apr 2009 01:07:31 +0000]
And works, with tests. 4 hours start to finish, that was fun :)
t0m [Thu, 23 Apr 2009 01:00:37 +0000]
Almost there, builds controllers with methods in them...
t0m [Thu, 23 Apr 2009 00:27:46 +0000]
Almost works generating controllers
t0m [Thu, 23 Apr 2009 00:14:30 +0000]
Start my reflector. Factor out the component generation from the other shit into a role
t0m [Wed, 22 Apr 2009 23:44:55 +0000]
Thats action registration sorted out. Now I just need to introspect all the models, and generate shim controllers, piece of piss :)
t0m [Wed, 22 Apr 2009 22:32:05 +0000]
Add .gitignore
t0m [Wed, 22 Apr 2009 22:31:06 +0000]
Well, thats dynamic model class loading from 100% config, with tests. Should be CPANable by itself :)
t0m [Wed, 22 Apr 2009 21:36:33 +0000]
Base class for controllers we auto-generate
t0m [Wed, 22 Apr 2009 21:36:00 +0000]
Strip code down to the bare minimum to start from
Tomas Doran (t0m) [Wed, 22 Apr 2009 21:28:50 +0000]
Scaffold