Commit | Line | Data |
01dfb279 |
1 | 15:36 <t0m> right. so the first thing to do is probably write a test to check |
2 | generating an application doesn't change. |
3 | 15:37 <dhoss> per app? |
4 | 15:38 <t0m> no, I mean whilst you're ripping ::Helper apart. |
5 | 15:38 <dhoss> OH |
6 | 15:38 <dhoss> gotcha |
7 | 15:38 <t0m> if you install your branch.. Then catalyst.pl t/TestAppForComparison |
8 | 15:39 <dhoss> so we have the same results now as before, yes? |
9 | 15:39 <t0m> then you write a test which says catalyst.pl /tmp/TempTestApp; my |
10 | $diff = `diff -urN t/TestAppForComparison /tmp/TempTestApp`; ok |
11 | !length($diff) or warn $diff; |
12 | 15:40 <t0m> exactly. and that'll test you rip all of the files out of Helper.pm |
13 | correctly.. |
14 | 15:40 <dhoss> okay, TestAppForComparison created. i'll commit that initial |
15 | version |
16 | 15:40 <t0m> you'll probably want to nuke it after that, as testing the |
17 | generated strings of an entire app dir is gonna be a PITA |
18 | 15:41 <t0m> to maintain |
19 | 15:41 <dhoss> i could see that |
20 | 15:41 <t0m> But it's totally the right solution whilst you're trying to rip |
21 | stuff out without changing it |
22 | 15:41 <dhoss> temp testing :-D |
23 | 15:44 <t0m> I've got some ideas on doing better testing that the TestApp we |
24 | generate is good. |
25 | 15:44 <t0m> but they're a bit more involved, and not needed for this at all ;) |
26 | 15:45 <dhoss> this being this refactor, or this bit of the refactor? |
27 | 15:45 <t0m> the latter. |
28 | 15:45 <dhoss> okay - got it |
29 | 15:46 <t0m> and once this is done - you can branch again to work on the code, |
30 | and again to work on the generated app templates (as we'll want to |
31 | moosify those, so your app is moosetastic by default |
32 | 15:46 <t0m> and as it's all in different files - you can do both in parallel as |
33 | you feel like and safely merge back |
34 | 15:47 <t0m> did you get to grips with MX::GetOpt and do you have a plan for |
35 | that yet? |
36 | 15:48 <dhoss> so one branch for helper_refactor, one for code (which code?), |
37 | and one for app templates |
38 | 15:48 <t0m> As I guess catalyst.pl should be taught to use it, and so should |
39 | the generated scripts :) |
40 | 15:48 <dhoss> i've been playing with MX::GetOpt, i need a few more details on |
41 | what exactly needs to be beat up |
42 | 15:48 <t0m> yy, but you branch from completed helper_refactor :) |
43 | 15:49 <t0m> and 'code' is the actual refactor / api changes for helpers |
44 | 15:49 <t0m> bletch |
45 | 15:50 <dhoss> okay, so the 'code' branch will be simply the C::H code branched |
46 | from helper_refactor |
47 | 15:50 <t0m> get_file has to keep working as everything using ::Helper needs it |
48 | 15:50 <t0m> yes, exactly. |
49 | 15:51 <t0m> so you need to make a get_file_from_sharedir function or something |
50 | 15:51 <dhoss> okay, making sense now :-) |
51 | 15:51 <t0m> and change things over to use that. |
52 | 15:51 <t0m> that's fine though - means you can extract 1 file at a time |
53 | 15:52 <dhoss> which would be better, no? better atomicity and for testing |
54 | 15:52 <t0m> yy |
55 | 15:52 <t0m> bletch was at the fact that 'get_file' is a good method name, and |
56 | it's now deprecated |
57 | 15:53 <dhoss> is that in C::H? |
58 | 15:53 <t0m> yy |
59 | 15:53 * dhoss is a little behind in my api knowledge |
60 | 15:53 <dhoss> off the top of my head at least |
61 | 15:53 <t0m> it's the 'get me a file out the <DATA> section' method |
62 | 15:53 <dhoss> aha right |
63 | 15:54 <t0m> which you're replacing in favour of 'get me a file out of the share |
64 | dir' |
65 | 15:54 <t0m> and 'copy file out of sharedir' methods. |
66 | 15:54 <t0m> The former for templates |
67 | 15:54 <t0m> the latter for binaries, which gets rid of the hateful decoding and |
68 | writing out business |
69 | 15:54 <dhoss> get -> we're going to interpolate shit, copy -> we're giong to |
70 | use directly? |
71 | 15:55 <t0m> just so |
72 | 15:55 <t0m> eliminating the 'please turn this giant hex string back into |
73 | binary' thing |
74 | 15:55 <dhoss> definitely :-P |
75 | 16:00 <t0m> sub _mk_favicon { |
76 | 16:00 <t0m> my ( $self ) = @_; |
77 | 16:00 <t0m> $self->copy_share_file( |
78 | 16:00 <t0m> File::Spec->catfile( ( caller(0) )[0], 'favicon.ico' ), |
79 | 16:00 <t0m> File::Spec->catfile( $self->{root}, "favicon.ico" ) |
80 | 16:00 <t0m> ); |
81 | 16:00 <t0m> } |
82 | 16:00 <t0m> sumfin like dat |
83 | 16:01 <dhoss> easy enough |
84 | 16:01 <t0m> the actually, all the caller crap dies too |
85 | 16:02 <dhoss> hrm, i suppose we have to keep the atrocious |
86 | Class::Accessor::Fast method name artifacts? |
87 | 16:02 <t0m> that's to clue get_file what file to borg crap out off |
88 | 16:03 <t0m> I vote that most of them can burn, as we'll be working out what |
89 | shit to copy a lot more dynamically |
90 | 16:03 <t0m> and the ones which can't get deprecated, but preserved. |
91 | 16:04 <dhoss> so that's just for the current get_file, right? |
92 | 16:04 <t0m> yy |
93 | 16:04 <t0m> $self->copy_share_file( |
94 | 16:04 <t0m> 'favicon.ico', |
95 | 16:04 <t0m> File::Spec->catfile( $self->{root}, "favicon.ico" ) |
96 | 16:04 <t0m> ); |
97 | 16:05 <t0m> more like it |
98 | 16:05 <t0m> so we have sub mk_foo { shift->generate_foo(@_); } |
99 | |
c5387711 |
100 | ==== |
101 | 5-28 |
102 | 03:04 < dhoss> SO. official next step: 1) trim crap out 2) write test for how |
103 | helpers are invoking Catalyst::Helper 3)??? 4) profit! |
104 | 03:05 < t0m> 3) Re arrange files in sharedir so we can make the comversion guts |
105 | totally generic |
106 | 03:05 < t0m> 4) merge&profit |
107 | 03:05 < t0m> *conversion |
108 | 03:05 < dhoss> rearrange meaning mv foo MyApp? |
109 | 03:06 < t0m> erm, yes, as described above, so that the contents of share/ is |
110 | laid out the same as a newly generated MyApp |
111 | 03:06 < dhoss> OH |
112 | 03:06 < dhoss> okay |
113 | 03:06 < dhoss> instead of my current fuckery :-) |
114 | 03:06 < dhoss> autarch: btw if you have an idea for that i'd love an email to |
115 | the one in topic |
116 | 03:06 < t0m> cause then the entire generate application becomes 'copy this |
117 | directory from X => Y, applying some file mangling rules) |
118 | |
119 | |