<commit_before># saddle

Hey nerd! Wrangle your SOA!


Saddle makes writing service clients as easy as giving high fives.©™®℗☃✓

It's a full-featured generic consumer layer for you to build API client implementations on top of.


## about

Ok, I love high fives, but what does Saddle do for me?

I'm glad you asked fellow nerd! Do you like automatic retries? Automatic multi-part file posting? I know I sure do!

Do you like sending your POSTs url-encoded? That's okay, I still love you anyways and Saddle has your back. Does your rampant OCD refuse to let you post in anything less structured than JSON? High five nerd, Saddle bleeds OCD. Just set your :post_style flag and fuhgedaboutit!

For an example of a concrete implementation, see [saddle-example](https://github.com/mLewisLogic/saddle-example)


## features
* set default connection settings for your implementation
* post urlencoded or JSON
* auto-parse JSON responses
* automatic retries and exception throwing


## guide
1. Inherit your endpoint from BaseEndpoint and call .get or .post within its action methods
2. Place those endpoints in the *endpoints* directory at the root of your client. Nest them if you like.
3. Inherit your client from Saddle
4. Call client.endpoint.action()


## todo
* xml posting
* xml parsing
* resource-style routing
* base endpoints
* clean up custom middleware loading interface
* load onto rubygems<commit_msg>cleaned up readme todos<commit_after># saddle

Hey nerd! Wrangle your SOA!


Saddle makes writing service clients as easy as giving high fives.©™®℗☃✓

It's a full-featured generic consumer layer for you to build API client implementations on top of.


## about

Ok, I love high fives, but what does Saddle do for me?

I'm glad you asked fellow nerd! Do you like automatic retries? Automatic multi-part file posting? I know I sure do!

Do you like sending your POSTs url-encoded? That's okay, I still love you anyways and Saddle has your back. Does your rampant OCD refuse to let you post in anything less structured than JSON? High five nerd, Saddle bleeds OCD. Just set your :post_style flag and fuhgedaboutit!

For an example of a concrete implementation, see [saddle-example](https://github.com/mLewisLogic/saddle-example)


## features
* set default connection settings for your implementation
* post urlencoded or JSON
* auto-parse JSON responses
* automatic retries and exception throwing


## guide
1. Inherit your endpoint from BaseEndpoint and call .get or .post within its action methods
2. Place those endpoints in the *endpoints* directory at the root of your client. Nest them if you like.
3. Inherit your client from Saddle
4. Call client.endpoint.action()


## todo
* xml posting
* xml parsing
* clean up custom middleware loading interface
{'fraction_non_alphanumeric': 0.057908070937386896, 'fraction_numerical': 0.002895403546869345, 'mean_word_length': 4.3879142300194935, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1905913', 'n_tokens_mistral': 777, 'n_tokens_neox': 742, 'n_words': 405}