Coder Social home page Coder Social logo

gist.el's Introduction

gist.el -- Emacs integration for gist.github.com

Uses your local GitHub config if it can find it.

Go to your GitHub Settings and generate a personal access token with at least gist scope. If you intend to use more of the underlying gh.el library, it's recommended you also add the user and repo scopes.

Next run:

git config --global github.user <your-github-user-name>
git config --global github.oauth-token <your-personal-access-token-with-gist-scope>

News

What's new in 1.4.0 ?

  • support #tags in gist description
  • support limiting display by tags, visibility

What's new in 1.3.0 ?

  • support listing another user's gists
  • more keybindings for (un)starring, forking gists
  • optionally ask for description at gist creation time

What's new in 1.2.0 ?

  • make gist list appearance customizable
  • more robust mode detection
  • add ability to open gist without changing focus
  • add ability to open current gist in browser

What's new in 1.1.0 ?

  • support for multiple profiles (e.g. github.com and Github Enterprise instance)
  • remove calls to deprecated gh.el APIs
  • support for background-reloading of gist list

What's new in 1.0 ?

  • gist.el now maintains a local cache so as to not go to the gist server every now and then.
  • multi-files gist support (indicated by a '+' in the gist list)
  • improved gist-list buffer, based on tabulated-list.el (same codebase as package.el) New keybindings:
    • g : reload the gist list from server
    • e : edit current gist description
    • k : delete current gist
    • + : add a file to the current gist
    • - : remove a file from the current gist
    • y : print current gist url
    • b : browse current gist
    • * : star gist
    • ^ : unstar gist
    • f : fork gist
  • in-place edition. While viewing a gist file buffer, you can:
    • C-x C-s : save a new version of the gist
    • C-x C-w : rename some file
  • dired integration. From a dired buffer, you can:
    • @ : make a gist out of marked files (with a prefix, make it private)

Install

Dependencies

gist.el depends on a number of other modules, that you'll need to install, either manually or by way of Emacs package manager

Install gist.el from marmalade (recommended)

In that scenario, you don't have to deal with the above dependencies yourself.

For emacs 24, first make sure http://marmalade-repo.org/ is properly configured. Then

M-x package-install RET gist RET

For emacs 23, you'll need to install a version of package.el first. Some bootstrap code is available there: https://gist.github.com/1884169 Then proceed as for emacs 24. You might get some compilation errors, but the package should be operational in the end.

Install gist.el from git

After installing the required dependencies, proceed with:

$ cd ~/.emacs.d/vendor
$ git clone git://github.com/defunkt/gist.el.git

In your emacs config:

(add-to-list 'load-path "~/.emacs.d/vendor/gist.el")
(require 'gist)

Getting started

When you first run a gist.el operation, you might be asked for your GitHub username and password. The username will be stored for future use, and a OAuth token will be stored in place of your password.

To make gist.el forget about those information, just remove them from your ~/.gitconfig file

Functions

gist-list - Lists your gists in a new buffer. Use arrow keys
to browse, RET to open one in the other buffer.

gist-region - Copies Gist URL into the kill ring.
With a prefix argument, makes a private gist.

gist-region-private - Explicitly create a private gist.

gist-buffer - Copies Gist URL into the kill ring.
With a prefix argument, makes a private gist.

gist-buffer-private - Explicitly create a private gist.

gist-region-or-buffer - Post either the current region, or if mark
is not set, the current buffer as a new paste at gist.github.com .
Copies the URL into the kill ring.
With a prefix argument, makes a private paste.

gist-region-or-buffer-private - Explicitly create a gist from the
region or buffer.

Config

Set gist-view-gist to non-nil if you want to view your Gist using browse-url after it is created.

Meta

gist.el's People

Contributors

ajtulloch avatar baron avatar blaenk avatar camdez avatar chrislo avatar defunkt avatar dgtized avatar drewr avatar drvink avatar halcyon avatar ivey avatar keelerm84 avatar kidd avatar legumbre avatar marcelino-m avatar mcfunley avatar nex3 avatar offbyone avatar oyvindio avatar paulfertser avatar purcell avatar rothmichaels avatar sigma avatar sjb avatar technomancy avatar the-kenny avatar toshiharu avatar wfarr avatar wpcarro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gist.el's Issues

Can't publish gist

I can't publish and fetch gists

On gist-buffer I get error in * Messages * buffer:

Paste created: nil
menu-bar-update-yank-menu: Wrong type argument: stringp, nil

If i want to fetch gist, gist.el give me html from github.

Eieio errors with gist-list and gist-fetch

M-x gist-list and M-x gist-fetch throw:

Unsafe call to `eieio-persistent-read'.
eieio-persistent-read: Odd number of elements in hashtable data

This is with:

  • eieio emacs/24.3/lisp/emacs-lisp/eieio.elc (v.1.4)
  • gist - (via Melpa) 1.1.1

gist-fetch fails

gist-fetch results in the following error:

Unbound slot: "#<class gh-gist-gist>", "#<gh-gist-gist gh-gist-gist>", :user, oref

I installed gist.el from package-install and gist-list is successful. However, selecting a gist from github:gists also results in the same error. I don't have two-factor authentication.

Revisioning of Gists?

Hello,

I really love this project. It's really really useful and I use it every day.
However, there is one thing I really miss: Editing gists on Github in Emacs.

It would be so awesome if I could gist-fetch a gist, work on it, and gist it again under the same id, so that it shows up as a new revision on the site.

I don't know how complicate it is to accomplish (maybe a minor-mode?), but it would be really really cool.

Cheers,
the-kenny

`JSON readtable error` when creating a gist

After a completely clean install of gist.el into a new clean ~/.emacs.d I get the following error when executing (gist-buffer)

Contacting host: api.github.com:443
if: JSON readtable error

Cannot edit gists locally

Emacs 24 on Mountain Lion.
Gist.el from Marmalade 1.0.1

I can't seem to update gists locally. I can create them, list them, edit them, but when I fetch a gist and edit it locally and then try and save with c-x c-s I just get the error

Wrong type argument: stringp, nil

With the backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
file-writable-p(nil)
basic-save-buffer-2()
basic-save-buffer-1()
basic-save-buffer()
save-buffer(1)
call-interactively(save-buffer nil nil)

gist.el v 0.4 in ELPA?

I know you guys just bumped to v 0.4 of gist.el. I use ELPA to manage gist.el - will you be submitting 0.4 to ELPA or should I just clone the github version?

Invalid slot type when trying to use dired @

  1. I'm opening up a dired window
  2. selecting some files with 'm'
  3. typing @ to add files to gist.

I get,

invalid slot type: gh-gist-gist, id, string, nil

I'd fix it, but I don't know enough elisp :)

Gist deletion

Of course, you can use browser to get rid of old gist you don't need anymore, but would be nice to do that from emacs.

provide a way to configure gist.el to work behind HTTP(S) proxy

I'm working in environment behind HTTP(S) proxy and I would like to use gist.el in my daily work. Is there a way to configure gist.el to work in such environment? Looks like the GitHub API is fetched by 'gnutls-cli' utility and a quick search shown that there is no '--proxy' setting or such to it.

Any help would be appreciated,

Łukasz

about support mutlibyte character

when the contents or description of the gist contains multi-byte character the gist buffer will got unreadable character.
The following code seems to solve this problem


(defun gh-api-set-response (status retry-data)

  ;; support mutlibyte character
  (set-buffer-multibyte t)

  (destructuring-bind (api req transform resp num) retry-data
    (condition-case err
        (gh-api-response-init resp (current-buffer) transform)
      (error
       (if (or (null num) (zerop num))
           (signal (car err) (cdr err))
         (logito:info api "Retrying request %s %s"
                      (oref req :method) (oref req :url))
         (let ((num (1- num)))
           (gh-api-run-request api req transform resp num)))))))

gist.el prompts for username/password

Hello,

I tried gist.el some time ago, but it always query me for my username and password, even with the username and token in my global git config.

(github-auth-info) returns the correct (username . token)-cons.

gist-list failure

i'm new to emacs and love the idea of gist.el. all the commands work with the exception of gist-list for me and I was hoping you could provide some insight:

Retrieving list of your gists...
Contacting host: gist.github.com:80
HTTP/0.9 How I hate thee!
error in process filter: url-http-generic-filter: Wrong type argument: number-or-marker-p, nil
error in process filter: Wrong type argument: number-or-marker-p, nil
error in process sentinel: gist-lists-retrieved-callback: Search failed: "<?xml"
error in process sentinel: Search failed: "<?xml"

I'm guessing this is something about my local setup, but just wanted to throw it yr way. If you have time I"d appreciate a look. Would love to get this workin!

I'm on Emacs 23.2 (9.0) on Mac OS X.

Thanks

  • Rich

gist-add-buffer fails with (invalid-slot-type gh-gist-gist id string nil)

emacs-version: GNU Emacs 24.1.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.12) of 2012-09-22 on batsu, modified by Debian

backtrace:

Debugger entered--Lisp error: (invalid-slot-type gh-gist-gist id string nil)
signal(invalid-slot-type (gh-gist-gist id string nil))
(if (or (null num) (zerop num)) (signal (car err) (cdr err)) (oset req :num-retries (1- num)) (gh-url-run-request req resp))
(let ((num (oref req :num-retries))) (if (or (null num) (zerop num)) (signal (car err) (cdr err)) (oset req :num-retries (1- num)) (gh-url-run-request req resp)))
(condition-case err (progn (oset resp :-req req) (gh-url-response-init resp (current-buffer))) (error (let ((num (oref req :num-retries))) (if (or (null num) (zerop num)) (signal (car err) (cdr err)) (oset req :num-retries (1- num)) (gh-url-run-request req resp)))))
(let* ((--cl-rest-- req-resp) (req (if (= (length --cl-rest--) 2) (pop --cl-rest--) (signal (quote wrong-number-of-arguments) (list nil (length --cl-rest--))))) (resp (car --cl-rest--))) (condition-case err (progn (oset resp :-req req) (gh-url-response-init resp (current-buffer))) (error (let ((num (oref req :num-retries))) (if (or (null num) (zerop num)) (signal (car err) (cdr err)) (oset req :num-retries (1- num)) (gh-url-run-request req resp))))))
(progn (let* ((--cl-rest-- req-resp) (req (if (= (length --cl-rest--) 2) (pop --cl-rest--) (signal (quote wrong-number-of-arguments) (list nil (length --cl-rest--))))) (resp (car --cl-rest--))) (condition-case err (progn (oset resp :-req req) (gh-url-response-init resp (current-buffer))) (error (let ((num (oref req :num-retries))) (if (or (null num) (zerop num)) (signal (car err) (cdr err)) (oset req :num-retries (1- num)) (gh-url-run-request req resp)))))))
(destructuring-bind (req resp) req-resp (condition-case err (progn (oset resp :-req req) (gh-url-response-init resp (current-buffer))) (error (let ((num (oref req :num-retries))) (if (or (null num) (zerop num)) (signal (car err) (cdr err)) (oset req :num-retries (1- num)) (gh-url-run-request req resp))))))
gh-url-set-response(nil ([object gh-api-paged-request "gh-api-paged-request" "PATCH" "https://api.github.com/gists/BAR" nil (("Authorization" . "token FOO") ("Content-Type" . "application/json")) "{"description":".gitattributes gpg smudge/clean filter", "public":null, "files":{"/home/shergill/config/.git/modules/arcana/info/attributes":{"filename":"/home/shergill/config/.git/modules/arcana/info/attributes", "content":"* filter=gpg diff=gpg\n[merge]\n renormalize=true\n"}}}" nil 0] [object gh-api-paged-response "gh-api-paged-response" nil nil (("Content-Length" . "152") ("X-Content-Type-Options" . "nosniff") ("X-GitHub-Media-Type" . "github.beta") ("X-Accepted-OAuth-Scopes" . "gist") ("X-OAuth-Scopes" . "user, repo, gist") ("X-RateLimit-Remaining" . "4961") ("X-RateLimit-Limit" . "5000") ("Status" . "422 Unprocessable Entity") ("Connection" . "keep-alive") ("Content-Type" . "application/json; charset=utf-8") ("Date" . "Mon, 18 Mar 2013 04:52:07 GMT") ("Server" . "GitHub.com") (status-string . "Unprocessable Entity") (status-code . "422") (status-version . "1.1")) 422 nil (closure (t) (&rest args) (apply (quote gh-object-read) (quote gh-gist-gist) args)) [object gh-api-paged-request "gh-api-paged-request" "PATCH" "https://api.github.com/gists/BAR" nil (("Authorization" . "token FOO") ("Content-Type" . "application/json")) "{"description":".gitattributes gpg smudge/clean filter", "public":null, "files":{"/home/shergill/config/.git/modules/arcana/info/attributes":{"filename":"/home/shergill/config/.git/modules/arcana/info/attributes", "content":"* filter=gpg diff=gpg\n[merge]\n renormalize=true\n"}}}" nil 0]]))
#[(req &optional resp) "\306�\307"\306�\310"\306�\311"\306�\312"\306�\313"\211�\203�

How to set open-buffer in the background

I see from here in gist.el:

(defun gist-list-render (&optional background)
  (gist-list-mode)
  (setq tabulated-list-entries
        (mapcar 'gist-tabulated-entry gist-list-db))
  (tabulated-list-print)
  (gist-list-tag-multi-files)
  (unless background
    (set-window-buffer nil (current-buffer))))

That I can specify a 'background' boolean which I think will mean that when I hit RET on something in the gist-list, my cursor will no longer hop to the new buffer, but will stay in the list. Where and how would I specify this? Is it a setting I put in my init.el? (Sorry, this is a super useful tool but I don't know lisp.)

Error on call of gist-list

byte-code: Symbol's function definition is void: eieio--defgeneric-init-form

Gist was installed by way of package-list-packages.

gist-list fails with byte-code: JSON readtable error

Emacs 24 with Emacs Prelude

gist.el 1.0.1 installed from melpa

If I try and run gist-list this is what happens

  1. I am asked for my GitHub password
  2. I am then asked for my username
    3 I am then asked for my password
  3. steps 2 and 3 again.
  4. JSON readtable error in the mini-buffer.

I've got the correct username and token setup in my .gitconfig file already.

This is the log outpu

Contacting host: api.github.com:443
Opening TLS connection to `api.github.com'...
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com'...failed
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com --protocols ssl3'...failed
Opening TLS connection with `openssl s_client -connect api.github.com:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `api.github.com'...done
Opening TLS connection to `api.github.com'...
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com'...failed
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com --protocols ssl3'...failed
Opening TLS connection with `openssl s_client -connect api.github.com:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `api.github.com'...done
Contacting host: api.github.com:443
Opening TLS connection to `api.github.com'...
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com'...failed
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com --protocols ssl3'...failed
Opening TLS connection with `openssl s_client -connect api.github.com:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `api.github.com'...done
byte-code: JSON readtable error

The same thing happens when I try to fetch a specific gist with gist-fetch.

gist-region does not return data

gist-region currently returns nil or t, depending on the success of the kill-buffer command.

This isn't particularly useful for writing extensions, so I'd like to suggest modifying it to report the url of the created gist.

In fact, here's the diff to do so:

105,108c105,106
<         (let ((url (match-string 1)))
<           (kill-new (match-string 1))
<           (kill-buffer (current-buffer))
<           url)))))

---
>         (kill-new (match-string 1))
>         (kill-buffer (current-buffer))))))

No gist created, no error reported

This may be similar to other reports.

Gist version 0.5 installed as an elpa package
GNU Emacs 23.2.1 (x86_64-apple-darwin, NS apple-appkit-1038.29) of 2010-05-08 on black.local

Here's the trace from the message buffer:

Mark activated
Contacting host: gist.github.com:80
Reading [text/html]... 194 bytes of 185 bytes (105%)
Reading... done.
Opening TLS connection to gist.github.com'... Opening TLS connection withgnutls-cli -p 443 gist.github.com'...failed
Opening TLS connection with gnutls-cli -p 443 gist.github.com --protocols ssl3'...failed Opening TLS connection withopenssl s_client -connect gist.github.com:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `gist.github.com'...done
Reading [text/html; charset=utf-8]... 38k of 38k (100%)
Reading... done.
Paste created: https://gist.github.com/gists

When I go to my github account, no new gists have been created.

Wrong type argument: (or eieio-object-p class-p), nil when run gist-list from http://marmalade-repo.org/

I just put marmelade on my package-list and install gist from there,

Type gist-list, type my username, password and get this message Wrong type argument: (or eieio-object-p class-p), nil on echo area

Here is my emacs version..
emacs-version: 24.3.1 (from archlinux's repos)

here is gist-pkg.el:
(define-package "gist" "20130315.2306" "Emacs integration for gist.github.com [github]" (quote ((ei
eio "1.3") (gh "0.7.2") (tabulated-list "0"))))

Regards

gist-region(-private) gives error in process filter: Wrong type argument: listp, empty

gist-buffer works fine.

I've enable a backtrace which give something like the following on the end:

url-http-activate-callback()
url-http-chunked-encoding-after-change-function(143 149 6)
url-http-wait-for-headers-change-function(1 155 154)
url-http-generic-filter(# "HTTP/1.1 500 Internal Server Error
Server: nginx/1.0.13
Date: Sat, 14 Jul 2012 15:01:29 GMT
Transfer-Encoding: chunked
Connection: keep-alive

0
")

I'm using emacs 24.1 on linux x86_64 and have installed gist/gh/pcache and logito all with git based sources with el-get.

Listing *all* gists

gist-list only seems to load the 30 most recent gists. Is there a way to load all of my gists if I have more than 30?

gist-fetch results in an "unbound slot" error

Contacting host: api.github.com:443
Opening TLS connection to api.github.com'... Opening TLS connection withgnutls-cli --insecure -p 443 api.github.com'...failed
Opening TLS connection with gnutls-cli --insecure -p 443 api.github.com --protocols ssl3'...failed Opening TLS connection withopenssl s_client -connect api.github.com:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `api.github.com'...done
if: Unbound slot: "#", "#", :user, oref

Debugger entered--Lisp error: (unbound-slot "#<class gh-gist-gist>" "#<gh-gist-gist gh-gist-gist>" :user oref)
  signal(unbound-slot ("#<class gh-gist-gist>" "#<gh-gist-gist gh-gist-gist>" :user oref))
  byte-code("......" [req num err resp eieio-oref :num-retries zerop signal eieio-oset gh-url-run-request] 5)
  gh-url-set-response(nil ([object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token SHHHHHHH") ("Content-Type" . "application/json")) "null" nil 0] [object gh-api-paged-response "gh-api-paged-response" nil nil (("X-Served-By" . "132026e9262a0093e437f99db5f1e499") ("Vary" . "Accept-Encoding") ("X-Content-Type-Options" . "nosniff") ("Strict-Transport-Security" . "max-age=31536000") ("X-GitHub-Request-Id" . "3287C485:0AB5:1DF25BD:5350391B") ("Access-Control-Allow-Origin" . "*") ("Access-Control-Expose-Headers" . "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval") ("Access-Control-Allow-Credentials" . "true") ("Content-Length" . "6830") ("Content-Security-Policy" . "default-src 'none'") ("X-Frame-Options" . "deny") ("X-XSS-Protection" . "1; mode=block") ("X-GitHub-Media-Type" . "github.v3") ("Vary" . "Accept, Authorization, Cookie, X-GitHub-OTP") ("X-Accepted-OAuth-Scopes" . "") ("X-OAuth-Scopes" . "user, repo, gist") ("ETag" . "\"7be3a7cc283d39bca0132be9cb8a7af0\"") ("Last-Modified" . "Thu, 17 Apr 2014 20:24:37 GMT") ("Cache-Control" . "private, max-age=60, s-maxage=60") ("X-RateLimit-Reset" . "1397769918") ("X-RateLimit-Remaining" . "4997") ("X-RateLimit-Limit" . "5000") ("Status" . "200 OK") ("Content-Type" . "application/json; charset=utf-8") ("Date" . "Thu, 17 Apr 2014 20:27:11 GMT") ("Server" . "GitHub.com") (status-string . "OK") (status-code . "200") (status-version . "1.1")) 200 nil (closure (t) (&rest args) (apply (quote gh-object-read) (quote [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]) args)) [object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token aa19bf050682c65512c8e9b27046c96becc1085b") ("Content-Type" . "application/json")) "null" nil 0]]))
  #[(req &optional resp) "....." [req params url url-request-extra-headers url-request-data url-request-method eieio-oref :method :data :headers :url :query gh-url-params-encode "" :async make-instance default-response-cls url-retrieve gh-url-set-response url-retrieve-synchronously nil resp req-resp] 8]([object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token SHHHHHHH") ("Content-Type" . "application/json")) "null" nil 0] [object gh-api-paged-response "gh-api-paged-response" nil nil (("X-Served-By" . "132026e9262a0093e437f99db5f1e499") ("Vary" . "Accept-Encoding") ("X-Content-Type-Options" . "nosniff") ("Strict-Transport-Security" . "max-age=31536000") ("X-GitHub-Request-Id" . "3287C485:0AB5:1DF25BD:5350391B") ("Access-Control-Allow-Origin" . "*") ("Access-Control-Expose-Headers" . "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval") ("Access-Control-Allow-Credentials" . "true") ("Content-Length" . "6830") ("Content-Security-Policy" . "default-src 'none'") ("X-Frame-Options" . "deny") ("X-XSS-Protection" . "1; mode=block") ("X-GitHub-Media-Type" . "github.v3") ("Vary" . "Accept, Authorization, Cookie, X-GitHub-OTP") ("X-Accepted-OAuth-Scopes" . "") ("X-OAuth-Scopes" . "user, repo, gist") ("ETag" . "\"7be3a7cc283d39bca0132be9cb8a7af0\"") ("Last-Modified" . "Thu, 17 Apr 2014 20:24:37 GMT") ("Cache-Control" . "private, max-age=60, s-maxage=60") ("X-RateLimit-Reset" . "1397769918") ("X-RateLimit-Remaining" . "4997") ("X-RateLimit-Limit" . "5000") ("Status" . "200 OK") ("Content-Type" . "application/json; charset=utf-8") ("Date" . "Thu, 17 Apr 2014 20:27:11 GMT") ("Server" . "GitHub.com") (status-string . "OK") (status-code . "200") (status-version . "1.1")) 200 nil (closure (t) (&rest args) (apply (quote gh-object-read) (quote [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]) args)) [object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token SHHHHHHH") ("Content-Type" . "application/json")) "null" nil 0]])
  apply(#[(req &optional resp) "....." [req params url url-request-extra-headers url-request-data url-request-method eieio-oref :method :data :headers :url :query gh-url-params-encode "" :async make-instance default-response-cls url-retrieve gh-url-set-response url-retrieve-synchronously nil resp req-resp] 8] ([object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token SHHHHHHH") ("Content-Type" . "application/json")) "null" nil 0] [object gh-api-paged-response "gh-api-paged-response" nil nil (("X-Served-By" . "132026e9262a0093e437f99db5f1e499") ("Vary" . "Accept-Encoding") ("X-Content-Type-Options" . "nosniff") ("Strict-Transport-Security" . "max-age=31536000") ("X-GitHub-Request-Id" . "3287C485:0AB5:1DF25BD:5350391B") ("Access-Control-Allow-Origin" . "*") ("Access-Control-Expose-Headers" . "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval") ("Access-Control-Allow-Credentials" . "true") ("Content-Length" . "6830") ("Content-Security-Policy" . "default-src 'none'") ("X-Frame-Options" . "deny") ("X-XSS-Protection" . "1; mode=block") ("X-GitHub-Media-Type" . "github.v3") ("Vary" . "Accept, Authorization, Cookie, X-GitHub-OTP") ("X-Accepted-OAuth-Scopes" . "") ("X-OAuth-Scopes" . "user, repo, gist") ("ETag" . "\"7be3a7cc283d39bca0132be9cb8a7af0\"") ("Last-Modified" . "Thu, 17 Apr 2014 20:24:37 GMT") ("Cache-Control" . "private, max-age=60, s-maxage=60") ("X-RateLimit-Reset" . "1397769918") ("X-RateLimit-Remaining" . "4997") ("X-RateLimit-Limit" . "5000") ("Status" . "200 OK") ("Content-Type" . "application/json; charset=utf-8") ("Date" . "Thu, 17 Apr 2014 20:27:11 GMT") ("Server" . "GitHub.com") (status-string . "OK") (status-code . "200") (status-version . "1.1")) 200 nil (closure (t) (&rest args) (apply (quote gh-object-read) (quote [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]) args)) [object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token SHHHHH") ("Content-Type" . "application/json")) "null" nil 0]]))
  gh-url-run-request([object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token SHHHHHH") ("Content-Type" . "application/json")) "null" nil 0] [object gh-api-paged-response "gh-api-paged-response" nil nil (("X-Served-By" . "132026e9262a0093e437f99db5f1e499") ("Vary" . "Accept-Encoding") ("X-Content-Type-Options" . "nosniff") ("Strict-Transport-Security" . "max-age=31536000") ("X-GitHub-Request-Id" . "3287C485:0AB5:1DF25BD:5350391B") ("Access-Control-Allow-Origin" . "*") ("Access-Control-Expose-Headers" . "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval") ("Access-Control-Allow-Credentials" . "true") ("Content-Length" . "6830") ("Content-Security-Policy" . "default-src 'none'") ("X-Frame-Options" . "deny") ("X-XSS-Protection" . "1; mode=block") ("X-GitHub-Media-Type" . "github.v3") ("Vary" . "Accept, Authorization, Cookie, X-GitHub-OTP") ("X-Accepted-OAuth-Scopes" . "") ("X-OAuth-Scopes" . "user, repo, gist") ("ETag" . "\"7be3a7cc283d39bca0132be9cb8a7af0\"") ("Last-Modified" . "Thu, 17 Apr 2014 20:24:37 GMT") ("Cache-Control" . "private, max-age=60, s-maxage=60") ("X-RateLimit-Reset" . "1397769918") ("X-RateLimit-Remaining" . "4997") ("X-RateLimit-Limit" . "5000") ("Status" . "200 OK") ("Content-Type" . "application/json; charset=utf-8") ("Date" . "Thu, 17 Apr 2014 20:27:11 GMT") ("Server" . "GitHub.com") (status-string . "OK") (status-code . "200") (status-version . "1.1")) 200 nil (closure (t) (&rest args) (apply (quote gh-object-read) (quote [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]) args)) [object gh-api-paged-request "gh-api-paged-request" "GET" "https://api.github.com/gists/5971577" nil (("Authorization" . "token SHHHHH") ("Content-Type" . "application/json")) "null" nil 0]])
  #[(api transformer method resource &optional data params) "......." [api fmt headers cache resource method eieio-oref :data-format :form (("Content-Type" . "application/x-www-form-urlencoded")) :json (("Content-Type" . "application/json")) :cache sha1 format "%s" safe-methods pcache-has pcache-get gh-cache-outdated-p gh-cache-etag gh-auth-modify-request :auth make-instance gh-api-paged-request :method :url :base gh-api-expand-resource :query :headers "If-None-Match" :data gh-api-json-encode gh-url-form-encode "" gh-api-response "cached" :data-received t default-response-cls :transform gh-url-run-request gh-url-add-response-callback gh-api-callback :key :revive pcache-invalidate transformer key ...] 16]([object gh-gist-api "api" t [object gh-cache "gh/gh-gist-api/DinoChiesa" "~/.emacs.d/var/pcache/gh/gh-gist-api/DinoChiesa" "gh-0.2" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (("/users/DinoChiesa/gists" "GET" "518961b9e53cab492b8a913ae8ba7382d4306545") [object gh-cache-entry "gh-cache-entry" 1397766426.800354 nil ([object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "try-request.el" 877 "https://gist.githubusercontent.com/DinoChiesa/11006228/raw/064be6dd4f29730b5560408d955f5323f7493ee0/try-request.el" nil]) t "Invoke Apigee Edge Mgmt API to list APIs, from elisp" "2014-04-17T19:24:47Z" "2014-04-17T19:36:40Z" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228" 0 unbound "11006228" "https://api.github.com/gists/11006228" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "exampleBase64Apigee.js" 4061 "https://gist.githubusercontent.com/DinoChiesa/8431579/raw/5ccacbcb813d45fa49f107d7c418fb1fa6766c0e/exampleBase64Apigee.js" nil]) t "Example of doing base64 encoding in a JavaScript for an Apigee policy " "2014-01-15T06:04:33Z" "2014-01-15T06:04:34Z" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579" 0 unbound "8431579" "https://api.github.com/gists/8431579" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "fixScreenCapFilenames.sh" 1628 "https://gist.githubusercontent.com/DinoChiesa/7796444/raw/08d9fb98d0a8395d3204d5530c350ab27f29c6bf/fixScreenCapFilenames.sh" nil]) t "Bash script to rename screen capture files on MacOSX to something cleaner.  It's handy to attach this as a \"folder action\" so that files get renamed automagically.  See http://apple.stackexchange.com/a/112747/27434" "2013-12-04T22:04:35Z" "2014-04-17T19:48:11Z" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444" 0 unbound "7796444" "https://api.github.com/gists/7796444" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "HelloWorldPort.wsdl" 2121 "https://gist.githubusercontent.com/DinoChiesa/6814892/raw/f19f55374d4f8d8ef5d1ccb5d2bd03d9a5a44a98/HelloWorldPort.wsdl" nil]) t "HelloWorld WSDL" "2013-10-03T18:44:08Z" "2013-10-03T18:44:09Z" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892" 0 unbound "6814892" "https://api.github.com/gists/6814892" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "contentNego.js" 4130 "https://gist.githubusercontent.com/DinoChiesa/6089138/raw/00ad909450ee4d8eddb4685f6951dd225aaac71f/contentNego.js" nil]) t "content negotiation in JS for ASP-classic" "2013-07-26T14:08:05Z" "2013-07-26T14:08:06Z" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138" 0 unbound "6089138" "https://api.github.com/gists/6089138" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "stringExtensions.js" 1038 "https://gist.githubusercontent.com/DinoChiesa/6089059/raw/e37945bbe0c5f80fd707f226f76821693b91f002/stringExtensions.js" nil]) t "string extensions for use with the sql-1.asp example I posted previously." "2013-07-26T13:57:48Z" "2013-07-26T13:57:49Z" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059" 0 unbound "6089059" "https://api.github.com/gists/6089059" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Embedding-Gist.htm" 1054 "https://gist.githubusercontent.com/DinoChiesa/5624844/raw/6a6f6bf394c30eacae99186365b551b33c59737a/Embedding-Gist.htm" nil]) t "Embed a Gist using jQuery. " "2013-05-22T02:24:58Z" "2013-05-22T02:24:59Z" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844" 0 unbound "5624844" "https://api.github.com/gists/5624844" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "sql-1.asp" 6413 "https://gist.githubusercontent.com/DinoChiesa/5617520/raw/450313cd0fbeb35f01caa6c85a4286ce76987638/sql-1.asp" nil]) t "An example of a Classic ASP module implemented in JavaScript. This one reads from a SQL database, does content negotiation, returning a query result as Text, XML, JSON, or HTML.  " "2013-05-21T04:40:50Z" "2013-07-26T14:09:12Z" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520" 1 unbound "5617520" "https://api.github.com/gists/5617520" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "xmlpretty.el" 1403 "https://gist.githubusercontent.com/DinoChiesa/5489021/raw/0dfef9d4bacaea88ceae8b92f8e97546b4bb113e/xmlpretty.el" nil]) t "elisp for pretty-printing XML from within emacs" "2013-04-30T14:16:29Z" "2013-04-30T14:16:30Z" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021" 0 unbound "5489021" "https://api.github.com/gists/5489021" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Sha1.js" 5738 "https://gist.githubusercontent.com/DinoChiesa/8ac2344a03209716c623/raw/2e8a61cf8891a204b08fa8c9201891e63c180ac5/Sha1.js" nil]) :json-false "Javascript implementation of Sha1 , swiped from Google's closure library." "2013-04-23T05:48:43Z" "2013-04-23T05:48:44Z" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623" 0 unbound "8ac2344a03209716c623" "https://api.github.com/gists/8ac2344a03209716c623" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "JdbcConClient.java" 16043 "https://gist.githubusercontent.com/DinoChiesa/caecab8d32162ca05ac8/raw/84a07f455412ce67c3dcedceaf9472646b5737f2/JdbcConClient.java" nil]) :json-false "JDBC Console client" "2013-04-18T20:37:09Z" "2013-04-18T20:37:10Z" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8" 0 unbound "caecab8d32162ca05ac8" "https://api.github.com/gists/caecab8d32162ca05ac8" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "hashUrlParameter.js" 6566 "https://gist.githubusercontent.com/DinoChiesa/fae2f5a8e1a2cb907552/raw/64011f5ebf6a474ace96a6f53c31b734e68cc963/hashUrlParameter.js" nil]) :json-false "Shows how to compute a SHA-1 Hash of a query parameter. " "2013-04-18T17:55:50Z" "2013-04-18T17:55:51Z" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552" 0 unbound "fae2f5a8e1a2cb907552" "https://api.github.com/gists/fae2f5a8e1a2cb907552" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Xslt.java" 4804 "https://gist.githubusercontent.com/DinoChiesa/16375c6ea2068b387ec4/raw/e95c38625008833b194fd033b4f4a1ac9b220d59/Xslt.java" nil]) :json-false "Basic XSLT / Saxon in Java, from command line" "2013-04-01T18:42:46Z" "2013-04-01T18:42:47Z" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4" 0 unbound "16375c6ea2068b387ec4" "https://api.github.com/gists/16375c6ea2068b387ec4" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "RawSerializer.cs" 1256 "https://gist.githubusercontent.com/DinoChiesa/5120167/raw/02ad888e017cfc2ae42770904da540df50ee9caf/RawSerializer.cs" nil]) t "Raw Serializer in C#" "2013-03-08T21:48:18Z" "2013-03-08T21:48:19Z" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167" 0 unbound "5120167" "https://api.github.com/gists/5120167" nil nil]) "\"7277212cc00d30f806e5256e321c684c\"" nil] ...)) gh-cache-entry 1397766327.791304 300] "https://api.github.com" "github" [object gh-oauth-authenticator "auth" "DinoChiesa" "aa19bf050682c65512c8e9b27046c96becc1085b"] :json 1 nil] (closure (t) (&rest args) (apply (quote gh-object-read) (quote [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]) args)) "GET" "/gists/5971577")
  apply(#[(api transformer method resource &optional data params) "........" [api fmt headers cache resource method eieio-oref :data-format :form (("Content-Type" . "application/x-www-form-urlencoded")) :json (("Content-Type" . "application/json")) :cache sha1 format "%s" safe-methods pcache-has pcache-get gh-cache-outdated-p gh-cache-etag gh-auth-modify-request :auth make-instance gh-api-paged-request :method :url :base gh-api-expand-resource :query :headers "If-None-Match" :data gh-api-json-encode gh-url-form-encode "" gh-api-response "cached" :data-received t default-response-cls :transform gh-url-run-request gh-url-add-response-callback gh-api-callback :key :revive pcache-invalidate transformer key ...] 16] ([object gh-gist-api "api" t [object gh-cache "gh/gh-gist-api/DinoChiesa" "~/.emacs.d/var/pcache/gh/gh-gist-api/DinoChiesa" "gh-0.2" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (("/users/DinoChiesa/gists" "GET" "518961b9e53cab492b8a913ae8ba7382d4306545") [object gh-cache-entry "gh-cache-entry" 1397766426.800354 nil ([object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "try-request.el" 877 "https://gist.githubusercontent.com/DinoChiesa/11006228/raw/064be6dd4f29730b5560408d955f5323f7493ee0/try-request.el" nil]) t "Invoke Apigee Edge Mgmt API to list APIs, from elisp" "2014-04-17T19:24:47Z" "2014-04-17T19:36:40Z" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228" 0 unbound "11006228" "https://api.github.com/gists/11006228" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "exampleBase64Apigee.js" 4061 "https://gist.githubusercontent.com/DinoChiesa/8431579/raw/5ccacbcb813d45fa49f107d7c418fb1fa6766c0e/exampleBase64Apigee.js" nil]) t "Example of doing base64 encoding in a JavaScript for an Apigee policy " "2014-01-15T06:04:33Z" "2014-01-15T06:04:34Z" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579" 0 unbound "8431579" "https://api.github.com/gists/8431579" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "fixScreenCapFilenames.sh" 1628 "https://gist.githubusercontent.com/DinoChiesa/7796444/raw/08d9fb98d0a8395d3204d5530c350ab27f29c6bf/fixScreenCapFilenames.sh" nil]) t "Bash script to rename screen capture files on MacOSX to something cleaner.  It's handy to attach this as a \"folder action\" so that files get renamed automagically.  See http://apple.stackexchange.com/a/112747/27434" "2013-12-04T22:04:35Z" "2014-04-17T19:48:11Z" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444" 0 unbound "7796444" "https://api.github.com/gists/7796444" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "HelloWorldPort.wsdl" 2121 "https://gist.githubusercontent.com/DinoChiesa/6814892/raw/f19f55374d4f8d8ef5d1ccb5d2bd03d9a5a44a98/HelloWorldPort.wsdl" nil]) t "HelloWorld WSDL" "2013-10-03T18:44:08Z" "2013-10-03T18:44:09Z" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892" 0 unbound "6814892" "https://api.github.com/gists/6814892" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "contentNego.js" 4130 "https://gist.githubusercontent.com/DinoChiesa/6089138/raw/00ad909450ee4d8eddb4685f6951dd225aaac71f/contentNego.js" nil]) t "content negotiation in JS for ASP-classic" "2013-07-26T14:08:05Z" "2013-07-26T14:08:06Z" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138" 0 unbound "6089138" "https://api.github.com/gists/6089138" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "stringExtensions.js" 1038 "https://gist.githubusercontent.com/DinoChiesa/6089059/raw/e37945bbe0c5f80fd707f226f76821693b91f002/stringExtensions.js" nil]) t "string extensions for use with the sql-1.asp example I posted previously." "2013-07-26T13:57:48Z" "2013-07-26T13:57:49Z" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059" 0 unbound "6089059" "https://api.github.com/gists/6089059" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Embedding-Gist.htm" 1054 "https://gist.githubusercontent.com/DinoChiesa/5624844/raw/6a6f6bf394c30eacae99186365b551b33c59737a/Embedding-Gist.htm" nil]) t "Embed a Gist using jQuery. " "2013-05-22T02:24:58Z" "2013-05-22T02:24:59Z" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844" 0 unbound "5624844" "https://api.github.com/gists/5624844" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "sql-1.asp" 6413 "https://gist.githubusercontent.com/DinoChiesa/5617520/raw/450313cd0fbeb35f01caa6c85a4286ce76987638/sql-1.asp" nil]) t "An example of a Classic ASP module implemented in JavaScript. This one reads from a SQL database, does content negotiation, returning a query result as Text, XML, JSON, or HTML.  " "2013-05-21T04:40:50Z" "2013-07-26T14:09:12Z" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520" 1 unbound "5617520" "https://api.github.com/gists/5617520" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "xmlpretty.el" 1403 "https://gist.githubusercontent.com/DinoChiesa/5489021/raw/0dfef9d4bacaea88ceae8b92f8e97546b4bb113e/xmlpretty.el" nil]) t "elisp for pretty-printing XML from within emacs" "2013-04-30T14:16:29Z" "2013-04-30T14:16:30Z" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021" 0 unbound "5489021" "https://api.github.com/gists/5489021" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Sha1.js" 5738 "https://gist.githubusercontent.com/DinoChiesa/8ac2344a03209716c623/raw/2e8a61cf8891a204b08fa8c9201891e63c180ac5/Sha1.js" nil]) :json-false "Javascript implementation of Sha1 , swiped from Google's closure library." "2013-04-23T05:48:43Z" "2013-04-23T05:48:44Z" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623" 0 unbound "8ac2344a03209716c623" "https://api.github.com/gists/8ac2344a03209716c623" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "JdbcConClient.java" 16043 "https://gist.githubusercontent.com/DinoChiesa/caecab8d32162ca05ac8/raw/84a07f455412ce67c3dcedceaf9472646b5737f2/JdbcConClient.java" nil]) :json-false "JDBC Console client" "2013-04-18T20:37:09Z" "2013-04-18T20:37:10Z" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8" 0 unbound "caecab8d32162ca05ac8" "https://api.github.com/gists/caecab8d32162ca05ac8" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "hashUrlParameter.js" 6566 "https://gist.githubusercontent.com/DinoChiesa/fae2f5a8e1a2cb907552/raw/64011f5ebf6a474ace96a6f53c31b734e68cc963/hashUrlParameter.js" nil]) :json-false "Shows how to compute a SHA-1 Hash of a query parameter. " "2013-04-18T17:55:50Z" "2013-04-18T17:55:51Z" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552" 0 unbound "fae2f5a8e1a2cb907552" "https://api.github.com/gists/fae2f5a8e1a2cb907552" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Xslt.java" 4804 "https://gist.githubusercontent.com/DinoChiesa/16375c6ea2068b387ec4/raw/e95c38625008833b194fd033b4f4a1ac9b220d59/Xslt.java" nil]) :json-false "Basic XSLT / Saxon in Java, from command line" "2013-04-01T18:42:46Z" "2013-04-01T18:42:47Z" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4" 0 unbound "16375c6ea2068b387ec4" "https://api.github.com/gists/16375c6ea2068b387ec4" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "RawSerializer.cs" 1256 "https://gist.githubusercontent.com/DinoChiesa/5120167/raw/02ad888e017cfc2ae42770904da540df50ee9caf/RawSerializer.cs" nil]) t "Raw Serializer in C#" "2013-03-08T21:48:18Z" "2013-03-08T21:48:19Z" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167" 0 unbound "5120167" "https://api.github.com/gists/5120167" nil nil]) "\"7277212cc00d30f806e5256e321c684c\"" nil] ...)) gh-cache-entry 1397766327.791304 300] "https://api.github.com" "github" [object gh-oauth-authenticator "auth" "DinoChiesa" "aa19bf050682c65512c8e9b27046c96becc1085b"] :json 1 nil] (closure (t) (&rest args) (apply (quote gh-object-read) (quote [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]) args)) "GET" "/gists/5971577"))
  gh-api-authenticated-request([object gh-gist-api "api" t [object gh-cache "gh/gh-gist-api/DinoChiesa" "~/.emacs.d/var/pcache/gh/gh-gist-api/DinoChiesa" "gh-0.2" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (("/users/DinoChiesa/gists" "GET" "518961b9e53cab492b8a913ae8ba7382d4306545") [object gh-cache-entry "gh-cache-entry" 1397766426.800354 nil ([object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "try-request.el" 877 "https://gist.githubusercontent.com/DinoChiesa/11006228/raw/064be6dd4f29730b5560408d955f5323f7493ee0/try-request.el" nil]) t "Invoke Apigee Edge Mgmt API to list APIs, from elisp" "2014-04-17T19:24:47Z" "2014-04-17T19:36:40Z" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228" 0 unbound "11006228" "https://api.github.com/gists/11006228" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "exampleBase64Apigee.js" 4061 "https://gist.githubusercontent.com/DinoChiesa/8431579/raw/5ccacbcb813d45fa49f107d7c418fb1fa6766c0e/exampleBase64Apigee.js" nil]) t "Example of doing base64 encoding in a JavaScript for an Apigee policy " "2014-01-15T06:04:33Z" "2014-01-15T06:04:34Z" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579" 0 unbound "8431579" "https://api.github.com/gists/8431579" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "fixScreenCapFilenames.sh" 1628 "https://gist.githubusercontent.com/DinoChiesa/7796444/raw/08d9fb98d0a8395d3204d5530c350ab27f29c6bf/fixScreenCapFilenames.sh" nil]) t "Bash script to rename screen capture files on MacOSX to something cleaner.  It's handy to attach this as a \"folder action\" so that files get renamed automagically.  See http://apple.stackexchange.com/a/112747/27434" "2013-12-04T22:04:35Z" "2014-04-17T19:48:11Z" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444" 0 unbound "7796444" "https://api.github.com/gists/7796444" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "HelloWorldPort.wsdl" 2121 "https://gist.githubusercontent.com/DinoChiesa/6814892/raw/f19f55374d4f8d8ef5d1ccb5d2bd03d9a5a44a98/HelloWorldPort.wsdl" nil]) t "HelloWorld WSDL" "2013-10-03T18:44:08Z" "2013-10-03T18:44:09Z" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892" 0 unbound "6814892" "https://api.github.com/gists/6814892" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "contentNego.js" 4130 "https://gist.githubusercontent.com/DinoChiesa/6089138/raw/00ad909450ee4d8eddb4685f6951dd225aaac71f/contentNego.js" nil]) t "content negotiation in JS for ASP-classic" "2013-07-26T14:08:05Z" "2013-07-26T14:08:06Z" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138" 0 unbound "6089138" "https://api.github.com/gists/6089138" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "stringExtensions.js" 1038 "https://gist.githubusercontent.com/DinoChiesa/6089059/raw/e37945bbe0c5f80fd707f226f76821693b91f002/stringExtensions.js" nil]) t "string extensions for use with the sql-1.asp example I posted previously." "2013-07-26T13:57:48Z" "2013-07-26T13:57:49Z" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059" 0 unbound "6089059" "https://api.github.com/gists/6089059" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Embedding-Gist.htm" 1054 "https://gist.githubusercontent.com/DinoChiesa/5624844/raw/6a6f6bf394c30eacae99186365b551b33c59737a/Embedding-Gist.htm" nil]) t "Embed a Gist using jQuery. " "2013-05-22T02:24:58Z" "2013-05-22T02:24:59Z" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844" 0 unbound "5624844" "https://api.github.com/gists/5624844" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "sql-1.asp" 6413 "https://gist.githubusercontent.com/DinoChiesa/5617520/raw/450313cd0fbeb35f01caa6c85a4286ce76987638/sql-1.asp" nil]) t "An example of a Classic ASP module implemented in JavaScript. This one reads from a SQL database, does content negotiation, returning a query result as Text, XML, JSON, or HTML.  " "2013-05-21T04:40:50Z" "2013-07-26T14:09:12Z" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520" 1 unbound "5617520" "https://api.github.com/gists/5617520" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "xmlpretty.el" 1403 "https://gist.githubusercontent.com/DinoChiesa/5489021/raw/0dfef9d4bacaea88ceae8b92f8e97546b4bb113e/xmlpretty.el" nil]) t "elisp for pretty-printing XML from within emacs" "2013-04-30T14:16:29Z" "2013-04-30T14:16:30Z" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021" 0 unbound "5489021" "https://api.github.com/gists/5489021" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Sha1.js" 5738 "https://gist.githubusercontent.com/DinoChiesa/8ac2344a03209716c623/raw/2e8a61cf8891a204b08fa8c9201891e63c180ac5/Sha1.js" nil]) :json-false "Javascript implementation of Sha1 , swiped from Google's closure library." "2013-04-23T05:48:43Z" "2013-04-23T05:48:44Z" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623" 0 unbound "8ac2344a03209716c623" "https://api.github.com/gists/8ac2344a03209716c623" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "JdbcConClient.java" 16043 "https://gist.githubusercontent.com/DinoChiesa/caecab8d32162ca05ac8/raw/84a07f455412ce67c3dcedceaf9472646b5737f2/JdbcConClient.java" nil]) :json-false "JDBC Console client" "2013-04-18T20:37:09Z" "2013-04-18T20:37:10Z" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8" 0 unbound "caecab8d32162ca05ac8" "https://api.github.com/gists/caecab8d32162ca05ac8" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "hashUrlParameter.js" 6566 "https://gist.githubusercontent.com/DinoChiesa/fae2f5a8e1a2cb907552/raw/64011f5ebf6a474ace96a6f53c31b734e68cc963/hashUrlParameter.js" nil]) :json-false "Shows how to compute a SHA-1 Hash of a query parameter. " "2013-04-18T17:55:50Z" "2013-04-18T17:55:51Z" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552" 0 unbound "fae2f5a8e1a2cb907552" "https://api.github.com/gists/fae2f5a8e1a2cb907552" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Xslt.java" 4804 "https://gist.githubusercontent.com/DinoChiesa/16375c6ea2068b387ec4/raw/e95c38625008833b194fd033b4f4a1ac9b220d59/Xslt.java" nil]) :json-false "Basic XSLT / Saxon in Java, from command line" "2013-04-01T18:42:46Z" "2013-04-01T18:42:47Z" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4" 0 unbound "16375c6ea2068b387ec4" "https://api.github.com/gists/16375c6ea2068b387ec4" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "RawSerializer.cs" 1256 "https://gist.githubusercontent.com/DinoChiesa/5120167/raw/02ad888e017cfc2ae42770904da540df50ee9caf/RawSerializer.cs" nil]) t "Raw Serializer in C#" "2013-03-08T21:48:18Z" "2013-03-08T21:48:19Z" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167" 0 unbound "5120167" "https://api.github.com/gists/5120167" nil nil]) "\"7277212cc00d30f806e5256e321c684c\"" nil] ...)) gh-cache-entry 1397766327.791304 300] "https://api.github.com" "github" [object gh-oauth-authenticator "auth" "DinoChiesa" "aa19bf050682c65512c8e9b27046c96becc1085b"] :json 1 nil] (closure (t) (&rest args) (apply (quote gh-object-read) (quote [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]) args)) "GET" "/gists/5971577")
  #[(api gist-or-id) "\304\211��\n;\203��\n�\305\306�\307\"!�\202��\306\n\310\"�\305\n!�\311��\312\313\314  \"$*\207" [transformer id gist-or-id api nil gh-object-reader eieio-oref gist-cls :id gh-api-authenticated-request "GET" format "/gists/%s"] 7]([object gh-gist-api "api" t [object gh-cache "gh/gh-gist-api/DinoChiesa" "~/.emacs.d/var/pcache/gh/gh-gist-api/DinoChiesa" "gh-0.2" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (("/users/DinoChiesa/gists" "GET" "518961b9e53cab492b8a913ae8ba7382d4306545") [object gh-cache-entry "gh-cache-entry" 1397766426.800354 nil ([object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "try-request.el" 877 "https://gist.githubusercontent.com/DinoChiesa/11006228/raw/064be6dd4f29730b5560408d955f5323f7493ee0/try-request.el" nil]) t "Invoke Apigee Edge Mgmt API to list APIs, from elisp" "2014-04-17T19:24:47Z" "2014-04-17T19:36:40Z" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228" 0 unbound "11006228" "https://api.github.com/gists/11006228" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "exampleBase64Apigee.js" 4061 "https://gist.githubusercontent.com/DinoChiesa/8431579/raw/5ccacbcb813d45fa49f107d7c418fb1fa6766c0e/exampleBase64Apigee.js" nil]) t "Example of doing base64 encoding in a JavaScript for an Apigee policy " "2014-01-15T06:04:33Z" "2014-01-15T06:04:34Z" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579" 0 unbound "8431579" "https://api.github.com/gists/8431579" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "fixScreenCapFilenames.sh" 1628 "https://gist.githubusercontent.com/DinoChiesa/7796444/raw/08d9fb98d0a8395d3204d5530c350ab27f29c6bf/fixScreenCapFilenames.sh" nil]) t "Bash script to rename screen capture files on MacOSX to something cleaner.  It's handy to attach this as a \"folder action\" so that files get renamed automagically.  See http://apple.stackexchange.com/a/112747/27434" "2013-12-04T22:04:35Z" "2014-04-17T19:48:11Z" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444" 0 unbound "7796444" "https://api.github.com/gists/7796444" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "HelloWorldPort.wsdl" 2121 "https://gist.githubusercontent.com/DinoChiesa/6814892/raw/f19f55374d4f8d8ef5d1ccb5d2bd03d9a5a44a98/HelloWorldPort.wsdl" nil]) t "HelloWorld WSDL" "2013-10-03T18:44:08Z" "2013-10-03T18:44:09Z" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892" 0 unbound "6814892" "https://api.github.com/gists/6814892" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "contentNego.js" 4130 "https://gist.githubusercontent.com/DinoChiesa/6089138/raw/00ad909450ee4d8eddb4685f6951dd225aaac71f/contentNego.js" nil]) t "content negotiation in JS for ASP-classic" "2013-07-26T14:08:05Z" "2013-07-26T14:08:06Z" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138" 0 unbound "6089138" "https://api.github.com/gists/6089138" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "stringExtensions.js" 1038 "https://gist.githubusercontent.com/DinoChiesa/6089059/raw/e37945bbe0c5f80fd707f226f76821693b91f002/stringExtensions.js" nil]) t "string extensions for use with the sql-1.asp example I posted previously." "2013-07-26T13:57:48Z" "2013-07-26T13:57:49Z" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059" 0 unbound "6089059" "https://api.github.com/gists/6089059" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Embedding-Gist.htm" 1054 "https://gist.githubusercontent.com/DinoChiesa/5624844/raw/6a6f6bf394c30eacae99186365b551b33c59737a/Embedding-Gist.htm" nil]) t "Embed a Gist using jQuery. " "2013-05-22T02:24:58Z" "2013-05-22T02:24:59Z" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844" 0 unbound "5624844" "https://api.github.com/gists/5624844" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "sql-1.asp" 6413 "https://gist.githubusercontent.com/DinoChiesa/5617520/raw/450313cd0fbeb35f01caa6c85a4286ce76987638/sql-1.asp" nil]) t "An example of a Classic ASP module implemented in JavaScript. This one reads from a SQL database, does content negotiation, returning a query result as Text, XML, JSON, or HTML.  " "2013-05-21T04:40:50Z" "2013-07-26T14:09:12Z" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520" 1 unbound "5617520" "https://api.github.com/gists/5617520" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "xmlpretty.el" 1403 "https://gist.githubusercontent.com/DinoChiesa/5489021/raw/0dfef9d4bacaea88ceae8b92f8e97546b4bb113e/xmlpretty.el" nil]) t "elisp for pretty-printing XML from within emacs" "2013-04-30T14:16:29Z" "2013-04-30T14:16:30Z" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021" 0 unbound "5489021" "https://api.github.com/gists/5489021" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Sha1.js" 5738 "https://gist.githubusercontent.com/DinoChiesa/8ac2344a03209716c623/raw/2e8a61cf8891a204b08fa8c9201891e63c180ac5/Sha1.js" nil]) :json-false "Javascript implementation of Sha1 , swiped from Google's closure library." "2013-04-23T05:48:43Z" "2013-04-23T05:48:44Z" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623" 0 unbound "8ac2344a03209716c623" "https://api.github.com/gists/8ac2344a03209716c623" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "JdbcConClient.java" 16043 "https://gist.githubusercontent.com/DinoChiesa/caecab8d32162ca05ac8/raw/84a07f455412ce67c3dcedceaf9472646b5737f2/JdbcConClient.java" nil]) :json-false "JDBC Console client" "2013-04-18T20:37:09Z" "2013-04-18T20:37:10Z" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8" 0 unbound "caecab8d32162ca05ac8" "https://api.github.com/gists/caecab8d32162ca05ac8" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "hashUrlParameter.js" 6566 "https://gist.githubusercontent.com/DinoChiesa/fae2f5a8e1a2cb907552/raw/64011f5ebf6a474ace96a6f53c31b734e68cc963/hashUrlParameter.js" nil]) :json-false "Shows how to compute a SHA-1 Hash of a query parameter. " "2013-04-18T17:55:50Z" "2013-04-18T17:55:51Z" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552" 0 unbound "fae2f5a8e1a2cb907552" "https://api.github.com/gists/fae2f5a8e1a2cb907552" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Xslt.java" 4804 "https://gist.githubusercontent.com/DinoChiesa/16375c6ea2068b387ec4/raw/e95c38625008833b194fd033b4f4a1ac9b220d59/Xslt.java" nil]) :json-false "Basic XSLT / Saxon in Java, from command line" "2013-04-01T18:42:46Z" "2013-04-01T18:42:47Z" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4" 0 unbound "16375c6ea2068b387ec4" "https://api.github.com/gists/16375c6ea2068b387ec4" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "RawSerializer.cs" 1256 "https://gist.githubusercontent.com/DinoChiesa/5120167/raw/02ad888e017cfc2ae42770904da540df50ee9caf/RawSerializer.cs" nil]) t "Raw Serializer in C#" "2013-03-08T21:48:18Z" "2013-03-08T21:48:19Z" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167" 0 unbound "5120167" "https://api.github.com/gists/5120167" nil nil]) "\"7277212cc00d30f806e5256e321c684c\"" nil] ...)) gh-cache-entry 1397766327.791304 300] "https://api.github.com" "github" [object gh-oauth-authenticator "auth" "DinoChiesa" "aa19bf050682c65512c8e9b27046c96becc1085b"] :json 1 nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil])
  apply(#[(api gist-or-id) "\304\211��\n;\203��\n�\305\306�\307\"!�\202��\306\n\310\"�\305\n!�\311��\312\313\314    \"$*\207" [transformer id gist-or-id api nil gh-object-reader eieio-oref gist-cls :id gh-api-authenticated-request "GET" format "/gists/%s"] 7] ([object gh-gist-api "api" t [object gh-cache "gh/gh-gist-api/DinoChiesa" "~/.emacs.d/var/pcache/gh/gh-gist-api/DinoChiesa" "gh-0.2" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (("/users/DinoChiesa/gists" "GET" "518961b9e53cab492b8a913ae8ba7382d4306545") [object gh-cache-entry "gh-cache-entry" 1397766426.800354 nil ([object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "try-request.el" 877 "https://gist.githubusercontent.com/DinoChiesa/11006228/raw/064be6dd4f29730b5560408d955f5323f7493ee0/try-request.el" nil]) t "Invoke Apigee Edge Mgmt API to list APIs, from elisp" "2014-04-17T19:24:47Z" "2014-04-17T19:36:40Z" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228" 0 unbound "11006228" "https://api.github.com/gists/11006228" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "exampleBase64Apigee.js" 4061 "https://gist.githubusercontent.com/DinoChiesa/8431579/raw/5ccacbcb813d45fa49f107d7c418fb1fa6766c0e/exampleBase64Apigee.js" nil]) t "Example of doing base64 encoding in a JavaScript for an Apigee policy " "2014-01-15T06:04:33Z" "2014-01-15T06:04:34Z" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579" 0 unbound "8431579" "https://api.github.com/gists/8431579" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "fixScreenCapFilenames.sh" 1628 "https://gist.githubusercontent.com/DinoChiesa/7796444/raw/08d9fb98d0a8395d3204d5530c350ab27f29c6bf/fixScreenCapFilenames.sh" nil]) t "Bash script to rename screen capture files on MacOSX to something cleaner.  It's handy to attach this as a \"folder action\" so that files get renamed automagically.  See http://apple.stackexchange.com/a/112747/27434" "2013-12-04T22:04:35Z" "2014-04-17T19:48:11Z" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444" 0 unbound "7796444" "https://api.github.com/gists/7796444" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "HelloWorldPort.wsdl" 2121 "https://gist.githubusercontent.com/DinoChiesa/6814892/raw/f19f55374d4f8d8ef5d1ccb5d2bd03d9a5a44a98/HelloWorldPort.wsdl" nil]) t "HelloWorld WSDL" "2013-10-03T18:44:08Z" "2013-10-03T18:44:09Z" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892" 0 unbound "6814892" "https://api.github.com/gists/6814892" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "contentNego.js" 4130 "https://gist.githubusercontent.com/DinoChiesa/6089138/raw/00ad909450ee4d8eddb4685f6951dd225aaac71f/contentNego.js" nil]) t "content negotiation in JS for ASP-classic" "2013-07-26T14:08:05Z" "2013-07-26T14:08:06Z" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138" 0 unbound "6089138" "https://api.github.com/gists/6089138" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "stringExtensions.js" 1038 "https://gist.githubusercontent.com/DinoChiesa/6089059/raw/e37945bbe0c5f80fd707f226f76821693b91f002/stringExtensions.js" nil]) t "string extensions for use with the sql-1.asp example I posted previously." "2013-07-26T13:57:48Z" "2013-07-26T13:57:49Z" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059" 0 unbound "6089059" "https://api.github.com/gists/6089059" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Embedding-Gist.htm" 1054 "https://gist.githubusercontent.com/DinoChiesa/5624844/raw/6a6f6bf394c30eacae99186365b551b33c59737a/Embedding-Gist.htm" nil]) t "Embed a Gist using jQuery. " "2013-05-22T02:24:58Z" "2013-05-22T02:24:59Z" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844" 0 unbound "5624844" "https://api.github.com/gists/5624844" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "sql-1.asp" 6413 "https://gist.githubusercontent.com/DinoChiesa/5617520/raw/450313cd0fbeb35f01caa6c85a4286ce76987638/sql-1.asp" nil]) t "An example of a Classic ASP module implemented in JavaScript. This one reads from a SQL database, does content negotiation, returning a query result as Text, XML, JSON, or HTML.  " "2013-05-21T04:40:50Z" "2013-07-26T14:09:12Z" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520" 1 unbound "5617520" "https://api.github.com/gists/5617520" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "xmlpretty.el" 1403 "https://gist.githubusercontent.com/DinoChiesa/5489021/raw/0dfef9d4bacaea88ceae8b92f8e97546b4bb113e/xmlpretty.el" nil]) t "elisp for pretty-printing XML from within emacs" "2013-04-30T14:16:29Z" "2013-04-30T14:16:30Z" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021" 0 unbound "5489021" "https://api.github.com/gists/5489021" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Sha1.js" 5738 "https://gist.githubusercontent.com/DinoChiesa/8ac2344a03209716c623/raw/2e8a61cf8891a204b08fa8c9201891e63c180ac5/Sha1.js" nil]) :json-false "Javascript implementation of Sha1 , swiped from Google's closure library." "2013-04-23T05:48:43Z" "2013-04-23T05:48:44Z" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623" 0 unbound "8ac2344a03209716c623" "https://api.github.com/gists/8ac2344a03209716c623" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "JdbcConClient.java" 16043 "https://gist.githubusercontent.com/DinoChiesa/caecab8d32162ca05ac8/raw/84a07f455412ce67c3dcedceaf9472646b5737f2/JdbcConClient.java" nil]) :json-false "JDBC Console client" "2013-04-18T20:37:09Z" "2013-04-18T20:37:10Z" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8" 0 unbound "caecab8d32162ca05ac8" "https://api.github.com/gists/caecab8d32162ca05ac8" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "hashUrlParameter.js" 6566 "https://gist.githubusercontent.com/DinoChiesa/fae2f5a8e1a2cb907552/raw/64011f5ebf6a474ace96a6f53c31b734e68cc963/hashUrlParameter.js" nil]) :json-false "Shows how to compute a SHA-1 Hash of a query parameter. " "2013-04-18T17:55:50Z" "2013-04-18T17:55:51Z" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552" 0 unbound "fae2f5a8e1a2cb907552" "https://api.github.com/gists/fae2f5a8e1a2cb907552" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Xslt.java" 4804 "https://gist.githubusercontent.com/DinoChiesa/16375c6ea2068b387ec4/raw/e95c38625008833b194fd033b4f4a1ac9b220d59/Xslt.java" nil]) :json-false "Basic XSLT / Saxon in Java, from command line" "2013-04-01T18:42:46Z" "2013-04-01T18:42:47Z" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4" 0 unbound "16375c6ea2068b387ec4" "https://api.github.com/gists/16375c6ea2068b387ec4" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "RawSerializer.cs" 1256 "https://gist.githubusercontent.com/DinoChiesa/5120167/raw/02ad888e017cfc2ae42770904da540df50ee9caf/RawSerializer.cs" nil]) t "Raw Serializer in C#" "2013-03-08T21:48:18Z" "2013-03-08T21:48:19Z" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167" 0 unbound "5120167" "https://api.github.com/gists/5120167" nil nil]) "\"7277212cc00d30f806e5256e321c684c\"" nil] ...)) gh-cache-entry 1397766327.791304 300] "https://api.github.com" "github" [object gh-oauth-authenticator "auth" "DinoChiesa" "aa19bf050682c65512c8e9b27046c96becc1085b"] :json 1 nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil]))
  gh-gist-get([object gh-gist-api "api" t [object gh-cache "gh/gh-gist-api/DinoChiesa" "~/.emacs.d/var/pcache/gh/gh-gist-api/DinoChiesa" "gh-0.2" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (("/users/DinoChiesa/gists" "GET" "518961b9e53cab492b8a913ae8ba7382d4306545") [object gh-cache-entry "gh-cache-entry" 1397766426.800354 nil ([object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "try-request.el" 877 "https://gist.githubusercontent.com/DinoChiesa/11006228/raw/064be6dd4f29730b5560408d955f5323f7493ee0/try-request.el" nil]) t "Invoke Apigee Edge Mgmt API to list APIs, from elisp" "2014-04-17T19:24:47Z" "2014-04-17T19:36:40Z" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228.git" "https://gist.github.com/11006228" 0 unbound "11006228" "https://api.github.com/gists/11006228" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "exampleBase64Apigee.js" 4061 "https://gist.githubusercontent.com/DinoChiesa/8431579/raw/5ccacbcb813d45fa49f107d7c418fb1fa6766c0e/exampleBase64Apigee.js" nil]) t "Example of doing base64 encoding in a JavaScript for an Apigee policy " "2014-01-15T06:04:33Z" "2014-01-15T06:04:34Z" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579.git" "https://gist.github.com/8431579" 0 unbound "8431579" "https://api.github.com/gists/8431579" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "fixScreenCapFilenames.sh" 1628 "https://gist.githubusercontent.com/DinoChiesa/7796444/raw/08d9fb98d0a8395d3204d5530c350ab27f29c6bf/fixScreenCapFilenames.sh" nil]) t "Bash script to rename screen capture files on MacOSX to something cleaner.  It's handy to attach this as a \"folder action\" so that files get renamed automagically.  See http://apple.stackexchange.com/a/112747/27434" "2013-12-04T22:04:35Z" "2014-04-17T19:48:11Z" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444.git" "https://gist.github.com/7796444" 0 unbound "7796444" "https://api.github.com/gists/7796444" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "HelloWorldPort.wsdl" 2121 "https://gist.githubusercontent.com/DinoChiesa/6814892/raw/f19f55374d4f8d8ef5d1ccb5d2bd03d9a5a44a98/HelloWorldPort.wsdl" nil]) t "HelloWorld WSDL" "2013-10-03T18:44:08Z" "2013-10-03T18:44:09Z" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892.git" "https://gist.github.com/6814892" 0 unbound "6814892" "https://api.github.com/gists/6814892" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "contentNego.js" 4130 "https://gist.githubusercontent.com/DinoChiesa/6089138/raw/00ad909450ee4d8eddb4685f6951dd225aaac71f/contentNego.js" nil]) t "content negotiation in JS for ASP-classic" "2013-07-26T14:08:05Z" "2013-07-26T14:08:06Z" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138.git" "https://gist.github.com/6089138" 0 unbound "6089138" "https://api.github.com/gists/6089138" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "stringExtensions.js" 1038 "https://gist.githubusercontent.com/DinoChiesa/6089059/raw/e37945bbe0c5f80fd707f226f76821693b91f002/stringExtensions.js" nil]) t "string extensions for use with the sql-1.asp example I posted previously." "2013-07-26T13:57:48Z" "2013-07-26T13:57:49Z" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059.git" "https://gist.github.com/6089059" 0 unbound "6089059" "https://api.github.com/gists/6089059" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Embedding-Gist.htm" 1054 "https://gist.githubusercontent.com/DinoChiesa/5624844/raw/6a6f6bf394c30eacae99186365b551b33c59737a/Embedding-Gist.htm" nil]) t "Embed a Gist using jQuery. " "2013-05-22T02:24:58Z" "2013-05-22T02:24:59Z" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844.git" "https://gist.github.com/5624844" 0 unbound "5624844" "https://api.github.com/gists/5624844" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "sql-1.asp" 6413 "https://gist.githubusercontent.com/DinoChiesa/5617520/raw/450313cd0fbeb35f01caa6c85a4286ce76987638/sql-1.asp" nil]) t "An example of a Classic ASP module implemented in JavaScript. This one reads from a SQL database, does content negotiation, returning a query result as Text, XML, JSON, or HTML.  " "2013-05-21T04:40:50Z" "2013-07-26T14:09:12Z" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520.git" "https://gist.github.com/5617520" 1 unbound "5617520" "https://api.github.com/gists/5617520" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "xmlpretty.el" 1403 "https://gist.githubusercontent.com/DinoChiesa/5489021/raw/0dfef9d4bacaea88ceae8b92f8e97546b4bb113e/xmlpretty.el" nil]) t "elisp for pretty-printing XML from within emacs" "2013-04-30T14:16:29Z" "2013-04-30T14:16:30Z" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021.git" "https://gist.github.com/5489021" 0 unbound "5489021" "https://api.github.com/gists/5489021" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Sha1.js" 5738 "https://gist.githubusercontent.com/DinoChiesa/8ac2344a03209716c623/raw/2e8a61cf8891a204b08fa8c9201891e63c180ac5/Sha1.js" nil]) :json-false "Javascript implementation of Sha1 , swiped from Google's closure library." "2013-04-23T05:48:43Z" "2013-04-23T05:48:44Z" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623.git" "https://gist.github.com/8ac2344a03209716c623" 0 unbound "8ac2344a03209716c623" "https://api.github.com/gists/8ac2344a03209716c623" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "JdbcConClient.java" 16043 "https://gist.githubusercontent.com/DinoChiesa/caecab8d32162ca05ac8/raw/84a07f455412ce67c3dcedceaf9472646b5737f2/JdbcConClient.java" nil]) :json-false "JDBC Console client" "2013-04-18T20:37:09Z" "2013-04-18T20:37:10Z" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8.git" "https://gist.github.com/caecab8d32162ca05ac8" 0 unbound "caecab8d32162ca05ac8" "https://api.github.com/gists/caecab8d32162ca05ac8" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "hashUrlParameter.js" 6566 "https://gist.githubusercontent.com/DinoChiesa/fae2f5a8e1a2cb907552/raw/64011f5ebf6a474ace96a6f53c31b734e68cc963/hashUrlParameter.js" nil]) :json-false "Shows how to compute a SHA-1 Hash of a query parameter. " "2013-04-18T17:55:50Z" "2013-04-18T17:55:51Z" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552.git" "https://gist.github.com/fae2f5a8e1a2cb907552" 0 unbound "fae2f5a8e1a2cb907552" "https://api.github.com/gists/fae2f5a8e1a2cb907552" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "Xslt.java" 4804 "https://gist.githubusercontent.com/DinoChiesa/16375c6ea2068b387ec4/raw/e95c38625008833b194fd033b4f4a1ac9b220d59/Xslt.java" nil]) :json-false "Basic XSLT / Saxon in Java, from command line" "2013-04-01T18:42:46Z" "2013-04-01T18:42:47Z" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4.git" "https://gist.github.com/16375c6ea2068b387ec4" 0 unbound "16375c6ea2068b387ec4" "https://api.github.com/gists/16375c6ea2068b387ec4" nil nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "RawSerializer.cs" 1256 "https://gist.githubusercontent.com/DinoChiesa/5120167/raw/02ad888e017cfc2ae42770904da540df50ee9caf/RawSerializer.cs" nil]) t "Raw Serializer in C#" "2013-03-08T21:48:18Z" "2013-03-08T21:48:19Z" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167.git" "https://gist.github.com/5120167" 0 unbound "5120167" "https://api.github.com/gists/5120167" nil nil]) "\"7277212cc00d30f806e5256e321c684c\"" nil] ...)) gh-cache-entry 1397766327.791304 300] "https://api.github.com" "github" [object gh-oauth-authenticator "auth" "DinoChiesa" "aa19bf050682c65512c8e9b27046c96becc1085b"] :json 1 nil] [object gh-gist-gist "gh-gist-gist" ([object gh-gist-gist-file "gh-gist-gist-file" "edit-in-place.js" 3712 "https://gist.githubusercontent.com/DinoChiesa/5971577/raw/bd1b742b53b105c171da0ca42ce07bdc1910e87d/edit-in-place.js" "angular\n\n  // edit-in-place attribute\n  .directive( 'editInPlace', function() {\n    return {\n      restrict: 'A',\n      scope: { value: '=editInPlace', onSaveFn: '&onSave', onCancelFn: '&onCancel' },\n      template: '<span ng-click=\"handleClick()\" ng-bind=\"value\"></span><input ng-model=\"modelCopy\" style=\"width:100%;\"></input>',\n      link: function ( $scope, element /* , attrs */ ) {\n        // Let's get a reference to the input element, as we'll want to reference it.\n        var inputChild = angular.element( element.children()[1] ),\n            previousValue;\n\n        element.addClass( 'edit-in-place' );\n        $scope.editing = false;\n\n        // This directive edits a copy of the value. Important because if the\n        // value is included in a sorted list, then the sorting will be active\n        // during editing, which can cause UI surprises. Elements get sorted out\n        // from under the cursor and can lose focus. So we edit a copy of the\n        // value, and the actual model gets updated by the controller who\n        // receives the onSaveFn.\n        $scope.modelCopy = $scope.value;\n\n        $scope.handleClick = function() {\n          if ( ! $scope.editing) {\n            $scope.beginEdit();\n          }\n        };\n\n        // why do I need to watch scope.editing ?\n        // $scope.$watch( 'editing', function () {\n        //   console.log('editInPlace editing changed', $scope.editing);\n        //   if ( $scope.editing ) {\n        //     $scope.edit();\n        //   }\n        //   else {\n        //     $scope.stop();\n        //   }\n        // });\n\n        // activate editing mode\n        $scope.beginEdit = function () {\n          $scope.editing = true;\n          previousValue = $scope.value;\n\n          // When the css class is 'active', the input box gets displayed.\n          // See the css for details.\n          element.addClass( 'active' );\n\n          // Now, focus the element.\n          // `angular.element()` returns a chainable array, like jQuery. To access\n          // a native DOM function, reference the first element in the array.\n          inputChild[0].focus();\n        };\n\n        // When the user leaves the input box, stop editing and accept the changes\n        inputChild.prop( 'onblur', function() {\n          if ( $scope.editing ) {\n            $scope.acceptEdits();\n          }\n        });\n\n        // has the user pressed the RETURN or ESCAPE key from within the input box?\n        inputChild.prop( 'onkeyup', function(e) {\n          if ($scope.editing) {\n            if (e.keyCode === 13) {\n              $scope.acceptEdits();\n            }\n            else if (e.keyCode === 27) {\n              $scope.cancelEdits();\n            }\n          }\n        });\n\n        // Accept edits\n        $scope.acceptEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            if ($scope.modelCopy !== previousValue) {\n              // This directive does not update the model directly. It's up to\n              // the controller to \"accept\" the changes and apply them to the\n              // original model.\n              $scope.onSaveFn({value: $scope.modelCopy, previousValue: previousValue});\n            }\n          }\n        };\n\n        // Cancel edits\n        $scope.cancelEdits = function () {\n          if ($scope.editing) {\n            $scope.editing = false;\n            element.removeClass( 'active' );\n            // wrap this assignment so that the view gets updated\n            $scope.$apply(function() {\n              $scope.value = previousValue;\n            });\n            $scope.onCancelFn({value: $scope.value});\n          }\n        };\n      }\n    };\n  });\n"]) t "An edit-in-place directive for AngularJS.  It requires no jQuery or other JS framework. " "2013-07-11T00:49:03Z" "2014-04-03T14:22:44Z" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577.git" "https://gist.github.com/5971577" 0 unbound "5971577" "https://api.github.com/gists/5971577" nil nil])
  (cond ((null gist) (setq gist (eieio-oref (gh-gist-get api id) (quote :data))) (add-to-list (quote gist-list-db) gist)) ((not (gh-gist-gist-has-files gist)) (gh-gist-get api gist)))
  (let ((api (gist-get-api t))) (cond ((null gist) (setq gist (eieio-oref (gh-gist-get api id) (quote :data))) (add-to-list (quote gist-list-db) gist)) ((not (gh-gist-gist-has-files gist)) (gh-gist-get api gist))))
  (let ((gist nil) (multi nil) (prefix (format "*gist %s*" id)) (result nil)) (progn (let ((--dolist-tail-- gist-list-db) g) (while --dolist-tail-- (setq g (car --dolist-tail--)) (if (string= (eieio-oref g (quote :id)) id) (progn (setq gist g))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((api (gist-get-api t))) (cond ((null gist) (setq gist (eieio-oref (gh-gist-get api id) (quote :data))) (add-to-list (quote gist-list-db) gist)) ((not (gh-gist-gist-has-files gist)) (gh-gist-get api gist)))) (let ((files (eieio-oref gist (quote :files)))) (setq multi (< 1 (length files))) (progn (let ((--dolist-tail-- files) f) (while --dolist-tail-- (setq f (car --dolist-tail--)) (let ((buffer ...) (mode ...)) (save-current-buffer (set-buffer buffer) (delete-region ... ...) (insert ...) (let ... ... ... ... ...) (set-buffer-modified-p nil)) (setq result buffer)) (setq --dolist-tail-- (cdr --dolist-tail--)))))) (if multi (let ((ibuffer-mode-hook nil) (ibuffer-use-header-line nil) (ibuffer-show-empty-filter-groups nil)) (ibuffer t prefix (list (cons (quote name) (regexp-quote (concat prefix "/")))) nil nil nil (quote ((name))))) (switch-to-buffer-other-window result)))
  gist-fetch("5971577")
  gist-fetch-current()
  call-interactively(gist-fetch-current nil nil)

Two-factor auth breaks everything (?)

I had two-factor auth on after installing gist.el via packages. After it prompted me for my GitHub password it would prompt again for just "Password" and only gave "JSON readtable error" even if I used my auth code.

Turning off two-factor auth allows me to login fine with only the initial GitHub password prompt.

Can't list gists

Got a server error when doing gist-list. TLS connection is opened but then I get:
error in process filter: Wrong type argument: lisp, "Server Error"

in my init:
;; Gists
(require 'gist)
(setq gist-use-curl t)
(setq gist-view-gist t)

Cheers,
Julien

Save location to kill-ring/clipboard after gisting.

After gistiing, the next operation is usually to give the location to someone or incorporate it in a document or something else.

In all those cases it would make sense to have the location in the clipboard ready to be inserted into whatever.

I tried 'kill-new' like so: https://gist.github.com/1298989 which seems to work fine for me.

This functionality seems so obvious I'm probably overlooking something here. If not, consider this a feature request.

Can't list gists

I'm trying to run M-x gist-list and in the minibuffer I get an error Search failed: "<?xml"

I have my github.user and github.token set and (setq gist-use-curl t).

File type reverted to plain text for single-file gists

I had gist consisting of a single-file shell script which I edited in Emacs. Upon saving it, the file language had reverted to "Text" on the gist web page. I made a sample case illustrating what happened.

To reproduce

  1. create a single-file gist from the web interface, setting the file type to shell (or whatever)
  2. Edit it in Emacs using gist.el. The mode in Emacs is correctly set to sh-mode
  3. Save the gist from within Emacs
  4. Check the gist web page. The language has reverted to "Text"

Observation

If the file name is set explicitly, this problem does not occur; Emacs doesn't clobber the existing name of the file. It appears only to occur in "anonymous" gist files.

gist-buffer/gist-region fails with (wrong-type-argument listp empty)

minimal failure case: a buffer with the single character '%' in it
additional failure cases: buffer containing quoted/unquoted strings such as "%", "%h" etc

emacs-version: "GNU Emacs 23.3.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.10) of 2012-03-25 on allspice, modified by Debian"
emacs-version: "GNU Emacs 23.4.1 (i486-pc-linux-gnu) of 2012-03-21 on murphy, modified by Debian"

backtrace output:

Debugger entered--Lisp error: (wrong-type-argument listp empty)
signal(wrong-type-argument (listp empty))
(if (or (null num) (zerop num)) (signal (car err) (cdr err)) (logito:info api "Retrying request %s %s" (oref req :method) (oref req :url)) (let (...) (gh-api-run-request api req transform resp num)))
(condition-case err (gh-api-response-init resp (current-buffer) transform) (error (if ... ... ... ...)))
(let* ((--cl-rest-- retry-data) (api ...) (req ...) (transform ...) (resp ...) (num ...)) (condition-case err (gh-api-response-init resp ... transform) (error ...)))
(progn (let* (... ... ... ... ... ...) (condition-case err ... ...)))
(destructuring-bind (api req transform resp num) retry-data (condition-case err (gh-api-response-init resp ... transform) (error ...)))
gh-api-set-response((:error (error http 500)) ([object gh-gist-api "api" nil [object gh-cache "gh/gh-gist-api/suhailshergill" "/.emacs.d/var/pcache/gh/gh-gist-api/suhailshergill" 0.1 #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (... [object pcache-entry "pcache-entry" 1342385494.137677 nil ...] ...)) pcache-entry 1342385466.029175 300] "https://api.github.com" [object gh-oauth-authenticator "auth" "suhailshergill" "OAUTH_TOKEN"] :json 1 nil] [object gh-api-request "request" "POST" "https://api.github.com/gists" (...) "{"description":"", "public":true, "files":{"scratch.el":{"content":";; This buffer is for notes you don't want to save, and for Lisp evaluation.\n;; If you want to create a file, visit that file with C-x C-f,\n;; then enter the text in that file's own buffer.\n\n%h"}}}"](lambda %28&rest --cl-rest--%29 %28apply #[... "303�J304 Jn""207" [G69903 G69902 args2 apply append] 5] ... ... --cl-rest--)) [object gh-api-response "async" nil nil (gist-created-callback) [object gh-gist-api "api" nil [object gh-cache "gh/gh-gist-api/suhailshergill" "/.emacs.d/var/pcache/gh/gh-gist-api/suhailshergill" 0.1 #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (... [object pcache-entry "pcache-entry" 1342385494.137677 nil ...] ...)) pcache-entry 1342385466.029175 300] "https://api.github.com" [object gh-oauth-authenticator "auth" "suhailshergill" "OAUTH_TOKEN"] :json 1 nil]] 0))
apply(gh-api-set-response ((:error (error http 500)) ([object gh-gist-api "api" nil [object gh-cache "gh/gh-gist-api/suhailshergill" "/.emacs.d/var/pcache/gh/gh-gist-api/suhailshergill" 0.1 #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (... [object pcache-entry "pcache-entry" 1342385494.137677 nil ...] ...)) pcache-entry 1342385466.029175 300] "https://api.github.com" [object gh-oauth-authenticator "auth" "suhailshergill" "OAUTH_TOKEN"] :json 1 nil] [object gh-api-request "request" "POST" "https://api.github.com/gists" ... "{"description":"", "public":true, "files":{"scratch.el":{"content":";; This buffer is for notes you don't want to save, and for Lisp evaluation.\n;; If you want to create a file, visit that file with C-x C-f,\n;; then enter the text in that file's own buffer.\n\n%h"}}}"](lambda ... ...) [object gh-api-response "async" nil nil ... [object gh-gist-api "api" nil [object gh-cache "gh/gh-gist-api/suhailshergill" "/.emacs.d/var/pcache/gh/gh-gist-api/suhailshergill" 0.1 #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (... [object pcache-entry "pcache-entry" 1342385494.137677 nil ...] ...)) pcache-entry 1342385466.029175 300] "https://api.github.com" [object gh-oauth-authenticator "auth" "suhailshergill" "OAUTH_TOKEN"] :json 1 nil]] 0)))
url-http-activate-callback()
url-http-chunked-encoding-after-change-function(143 155 12)
url-http-wait-for-headers-change-function(1 155 154)
url-http-generic-filter(# "HTTP/1.1 500 Internal Server Error
\nServer: nginx/1.0.13
\nDate: Sun, 15 Jul 2012 20:52:58 GMT
\nTransfer-Encoding: chunked
\nConnection: keep-alive
\n
\n0
\n
\n")

Wrong number of arguments

Opening TLS connection to `gist.github.com'...done
error in process filter: apply: Wrong number of arguments: #[nil

Why is this in the EMACS package repo, the project looks dead. Kind of a tease.

Can't fetch gists from gist-list or git-fetch

Gist-0.5 from marmalade
emacs 24.0.90 Mac OS X Lion.

I've got (setq gist-use-curl t) in my init.el file

I can create gists from within emacs - they appear on the gist site, but when I try to select a gist form the list generated by gist-list, or git-fetch I just get a message saying ~ <html><body>You are being <a href="https://raw.github.com/xxxxxxx.txt">redirected</a>.</body></html> in a new buffer and no gist.

If I comment out the (setq gist-use-curl t) I get an empty buffer and messages about a failed TLS connection.

Make a way of caching gists completely

First off, this is a brilliant brilliant tool. I really love it.

Second, I'd really like a way to just download all my gists and keep them locally (in my .emacs.d somewhere ideally).

I might have a go at hacking it together myself but I thought I'd create the issue here anyway to get your thoughts on the idea.

Fails to compile `(eieio "1.3")` not found

(eieio "1.4") is the one available in recent version of emacs,
Version String:

GNU Emacs 24.3.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.6.4) of 2013-06-19 
on papaya, modified by Debian

gist-region fails

recently I started seeing this:

Mark set [2 times]
Opening TLS connection to gist.github.com'... Opening TLS connection withgnutls-cli -p 443 gist.github.com'...failed
Opening TLS connection with gnutls-cli -p 443 gist.github.com --protocols ssl3'...failed Opening TLS connection withopenssl s_client -connect gist.github.com:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `gist.github.com'...done
gist.github.com tried to set a cookie for domain github.com - rejected.
Paste created: https://gist.github.com/gists

Any ideas? Has something changed? My auth user/token in .gitconfig is correct and valid

Thanks for any clues you might provide

Private Gists created using the web interface turn public

After a fresh install (by hand, gist.el and dependencies are fresh checkouts, Emacs 24.3.50.1), all my already existing private gists, and new ones created using the web interface are listed as public in gist-list. When editing and saving those private Gists using gist.el, they turn public on GitHub. Private Gists created via gist.el are not affected by this.

All gist functions result in: Wrong type argument: stringp, nil

I just installed gist via marmalade on Emacs 24.3.1 on Windows 7. I ran the function gist-list and it gave the error Wrong type argument: stringp, nil. I tried several other gist- functions, all with the same result. It didn't ask for a username or password.

API token

Github token authentication has been disabled, but gist.el is still using the old API. An upgrade to the new API would be helpful.

gist-buffer-private: Wrong type argument: listp, empty

Last time (two or three days) see the following, when trying to create private gist:

Contacting host: api.github.com:443
Opening TLS connection to `api.github.com'...
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com'...failed
Opening TLS connection with `gnutls-cli --insecure -p 443 api.github.com --protocols ssl3'...failed
Opening TLS connection with `openssl s_client -connect api.github.com:443 -no_ssl2 -ign_eof'...done
Opening TLS connection to `api.github.com'...done
Contacting host: api.github.com:443
error in process filter: byte-code: Wrong type argument: listp, empty
error in process filter: Wrong type argument: listp, empty

Not pasting

Since quite a long time I can't paste correctly my code with gist.el.
I'm using emacs
GNU Emacs 23.2.1 (x86_64-apple-darwin10.3.0, NS apple-appkit-1038.29) of 2010-05-09 on linc

and the updated gist.el file.

The strange thing is that everything looks correct, I don't get any error but I don't even get the right url for the pasted code, because I think it's not pasted anywhere...

Here the log:
Contacting host: gist.github.com:80
Reading [text/html]... 195 bytes of 185 bytes (105%)
Reading... done.
Paste created: https://gist.github.com/gists

Any idea?
thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.