Commit Graph

36 Commits

Author SHA1 Message Date
Sebastian Thiel
df9f0299bf fix(mako): deal with missing auth information
Now all APIs can be built successfully, which should help to
prevent things from getting hardcoded in any way.
2015-03-10 17:10:07 +01:00
Sebastian Thiel
c7e169dff3 fix(util): resource-to-category map
It allows to obtain category, which we previously dropped
2015-03-10 16:23:22 +01:00
Sebastian Thiel
1e332ddb91 fix(libdocs): asssure candidate is in mapping
It seems nearly nothing can be taken for granted ;).
It's best to just run against a big set of APIs and fix issues as they
arise though.

More flexibility means more maintenance, after all.
2015-03-10 15:58:39 +01:00
Sebastian Thiel
92d8fa76d0 fix(apis): intermediate improvements ...
... it shows that the override I used previously won't work for `admin`.
Therefore we have to keep the actual value, instead of degenrating it.

Makes sense ... it's interesting how much one tends to hard-code things
to work just for a few cases, unless you opt in to see the whole picture
2015-03-10 15:54:43 +01:00
Sebastian Thiel
ff5cbb3bf4 fix(api-versions): ignore beta/alpha,assure latest
There were a few bugs in the generator program, which caused old
versions to be picked up, and alphas/betas
2015-03-10 15:12:26 +01:00
Sebastian Thiel
9377220c59 chore(data-merge): api-list is now in separte file
This file is completely generated, and allows us to easily bring in
new versions after each json update.

To make that work, we simple merge all data handed to mako-render,
inside of it. That way, we can put 'api/list' data in any yaml.
2015-03-10 15:00:43 +01:00
Sebastian Thiel
2d036b6623 feat(all-apis): build all apis, were possible
Now there is a blacklist feature, allowing to list apis we can't yet
handle for whichever reason.
2015-03-10 14:34:26 +01:00
Sebastian Thiel
35bd1c3e9c fix(resources): first recursive resource support
However, this also means we need recursive builders, which is tottally
unsupported for now ... .

This means we have to generalize rbuild generation ... could be easy.
Lets see
2015-03-10 11:04:25 +01:00
Sebastian Thiel
7b81646f43 chore(make): update-json and all APIs
It's about time we finish up this part, to make it even easier to test
against more APIs, and keep them up-to-date
2015-03-10 10:34:19 +01:00
Sebastian Thiel
6d2b0fc264 fix(scope): scopes are sorted Strings now
That way, we make retrieved tokens independent of the order scopes
were passed in. Additionally, we can pass any scopes, just in case
someone uses one token for multiple APIs.
Let's keep it flexible.
2015-03-10 09:31:29 +01:00
Sebastian Thiel
5b2d8a77a3 feat(mbuild): media-upload doit() methods
It's just a first step, and even though the generation works well,
I am still missing the right Rust code. Will have to simplify ...
2015-03-08 15:49:28 +01:00
Sebastian Thiel
66f3ae14e5 feat(drive): added gogole drive API
Just to have another, different set of api information to deal with,
and not accidentally hard-code things to work with youtube only.

Prepared dealing with media uploads, and it turns out to be best to
adjust the 'doit()' to take the respective type parameter.

We also have to think about downloads, like the ones for google drive,
which requires custom query parameters.
2015-03-08 11:38:06 +01:00
Sebastian Thiel
582aca3249 feat(setters): properties and setters for mbuilder
This includes descriptions, of course, and generally seems to look
quite neat. For now, we brutally consume all input to own it,
but in future we might be able to put in Borrow to support them all.
2015-03-04 19:18:04 +01:00
Sebastian Thiel
74aa7bba2d docs(lib): library overview as far as possible
Everything we have, feature wise, is now documented in a first version
at least.

We shall keep this uptodate with what we are implementing, which also
helps figuring out a good api.
2015-03-03 12:53:38 +01:00
Sebastian Thiel
475163ec29 feat(mako): now sets up entire project structure
That way, we have a common library to pull in from the main repository,
and a space for testing new code (in a partial implementation).

Next there will be generated object structures.
2015-03-02 16:50:22 +01:00
Sebastian Thiel
fc15a7030f feat(license): improved license information
... and readme, and looks of author listing.
Slowly getting into the flow, possibilities seem thrilling.
2015-03-02 15:23:41 +01:00
Sebastian Thiel
3670e4f6c9 feat(mako): LICENSE + README.md
Readme is very initial, but the architecture is set to evolve it to
something no less than beatiful.
2015-03-02 14:58:18 +01:00
Sebastian Thiel
4e5f2c05d9 feat(mako): mako-render generates output dirs
That way, the makefile doesn't need to know that much anymore, and
gets simpler/less verbose.

\# Also
* Added filters for rust doc string
* fixed .PHONY
2015-03-02 13:45:57 +01:00
Sebastian Thiel
11b6fe212f fix(rename): mv youtube-rs to google-apis-rs 2015-03-02 12:05:42 +01:00
Sebastian Thiel
2298601165 feat(mako): can now use custom libraries in pycode
Namespaces can exclusively be used during rendering, which is fine if
you remind yourself of the newline rules.
However, I also need some utiltiies that convert input data. These
are now within their own libraries, which can be used from python blocks
like the ordinary python functions they are.

Quite neat.
In future, most of the functionality will be in separate namespaces,
the top-level will just assemble the main library file, usnig the
provided %defs. That way, the main file is kept clean.
2015-03-02 11:52:15 +01:00
Sebastian Thiel
be938255bd feat(mako): cargo.toml template
It's quite final, and super easy to change and to read.

It seems we want to use namespaces/shared implementations soon to allow
using defs. In our case, we transform the version in a particular way,
which is easy enough, yet I'd like to use it to make the system more
powerful.
2015-03-01 18:31:55 +01:00
Sebastian Thiel
2d77857aaf feat(mako): generic source/output mappings
This includes proper handling of dependencies.
The code is concise, pythonic and quite 'cody', but does the job just
fine.
2015-03-01 18:04:00 +01:00
Sebastian Thiel
087a0762ac feat(mako-render): multiple input-outputs per call
That way, we read the data files only once, but produce all the outputs
we need. Together with a powerful makefile, we have a multi-invocation
with proper depedency tracking.
Everything will be regenerated though, even though just a single input
template file changed.

The alternative would be to have one dependency and invocation per
input dependency, but that will read the entire json each time.

Let's see what's faster/more useful during development.
2015-03-01 17:44:02 +01:00
Sebastian Thiel
30041e9c7d feat(mako): api deps generation works
It's very pleasant to use, and worth the slightly greater effort.
2015-03-01 16:28:57 +01:00
Sebastian Thiel
20410adb78 feat(mako): mako autosetup and improved executable
Now we can write mako templates, with a similar feature set as
pyratemp. Except that its syntax is nicer, allows to do everything
and that there is syntax highlight support.

Let's see how it fares
2015-03-01 16:01:46 +01:00
Sebastian Thiel
c0bfeabbc3 feat(pyratemp): successfully generating make deps
After minor modifications to pyratemp, it certainly does the job.

What it **does NOT** do:

* multiple outputs per template/command invocation
* NICE embedding of code (like GSL can)

It will do the job nonetheless, but mako might be worth a look
2015-03-01 15:08:37 +01:00
Sebastian Thiel
179c64c5e7 fix(pyratemp): is now self-contained
A little more than the promised 500 lines of code though ;).
2015-03-01 13:29:54 +01:00
Sebastian Thiel
e06738a7bd fix(template-engine): removed gsl, added pyratemp
As GSL failed in my first attempt to get the example program going,
it might be better to try something else before too much time is spend.

Fortunately, pyratemp **seems** to be something usable, and even if not,
it might be possible to make it usable as it's just a 'simple'
python script that I might be able to understand, if need be.
2015-03-01 13:24:01 +01:00
Sebastian Thiel
e081017cb3 fix(xml): forgot to add shared.xml
As XML files are ignored, I didn't see that.
2015-03-01 11:47:32 +01:00
Sebastian Thiel
0c2f149b1e feat(make): unified make based build system
Added all prerequisite programs in binary for easier use.
Make is now implemented top-level, and is not expected to do too much
work actually. It will, however, keep track of all required
gsl invocation and make sure calls are efficient by not having
to rebuild everything every time. That's what make does, anyway ;)
2015-03-01 11:21:41 +01:00
Sebastian Thiel
1980f76c32 feat(make): makefile for handling json-to-xml
That way, it will remain clearly documented how to do this, and allow
for efficient calling of gsl as well, at some point.

Of course it will be a little more difficult for us to know all
dependencies, but gsl could generate these as well for us, I suppose.
2015-03-01 09:24:16 +01:00
Sebastian Thiel
e83b063f05 fix(json2xml): works exactly as needed.
Producing non-malformed pretty xml
2015-03-01 09:03:49 +01:00
Sebastian Thiel
e0724fb56f fix(json2xml): xml.tostring works now ...
... but it still generates invalid output due to scopes.
Should be an easy fix
2015-03-01 08:22:35 +01:00
Sebastian Thiel
143aa6fd86 fix(json2xml): make it handle top-level keys
It can now handle multiple of them.

However, conversion fails, as the bloody xml converter can't handle
booleans ??? WTF
2015-03-01 08:06:24 +01:00
Sebastian Thiel
eebcf54929 feat(xmlconv): add conversion tool and youtube api
The json file needs to be converted to valid XML, which should be
done by a soon-to-be-modified xml2json tool.
2015-03-01 07:39:04 +01:00
Sebastian Thiel
dda847607f feat(all): initial commit
Base project with everything it will need to grow:
* CI
* documentation
* basic cargo
2015-02-27 10:23:31 +01:00