Skip to content

Instantly share code, notes, and snippets.

# 「follow_redirectsオプションを無効にできない不具合」を修正するモンキーパッチ
# リポジトリの最新版では修正済み
# 対象はappengine-apis-0.0.12
module AppEngine
module URLFetch
module_function
def build_urlfetch_request(url, options) # :nodoc:
method = options.delete(:method) || 'GET'
payload = options.delete(:payload)
# 「memcacheが適切に失効しない不具合」を修正するモンキーパッチ
# 対象はappengine-apis-0.0.12
module AppEngine
class Memcache
def put(key, value, expiration, mode)
check_write
convert_exceptions do
key = memcache_key(key)
value = memcache_value(value)
# 「memcacheで日本語キーが使用できない不具合」を修正するモンキーパッチ
# 対象はappengine-apis-0.0.12
module AppEngine
class Memcache
def memcache_key(obj)
key = obj
key = java.lang.String.new(key.to_s) if key
key
end
# 「memcacheに日本語文字列を格納すると文字化けしてしまう不具合」を修正するモンキーパッチ
# 対象はappengine-apis-0.0.12
module AppEngine
class Memcache
def memcache_value(obj)
case obj
when Fixnum
java.lang.Long.new(obj)
when Float
module Enumerable
def retry_if(*klasses)
e = nil
self.each { |arg|
begin
return yield(arg)
rescue *klasses => e
next
end
# 「タスクキューを追加てきない不具合」を修正するモンキーパッチ
# 対象はappengine-apis-0.0.12
module AppEngine
module Labs
module TaskQueue
class Task
def add(queue=nil)
queue = Queue.new unless queue.kind_of? Queue
@handle = queue.java_queue.add(_task)
module MessagePack
def self.pack(obj, schema = nil)
ostream = java.io.ByteArrayOutputStream.new
packer = org.msgpack.Packer.new(ostream)
value = self.ruby_to_java(obj)
if schema
packer.packWithSchema(value, org.msgpack.Schema.parse(schema))
else
require "stringio"
module MessagePackPure
def self.unpack(binary)
io = StringIO.new(binary)
return self.read(io)
end
def self.read(io)
@nayutaya
nayutaya / gist:4538468
Last active December 11, 2015 03:29
赤外線投光器を制御するArduinoスケッチ。20秒でタイムアウト。
const int IRLED_PIN = 13;
const unsigned long IRLED_TIMEOUT = 20 * 1000; // ms
char buffer[16] = {0};
unsigned char buffer_counter = 0;
unsigned long irled_expire = 0;
void setup()
{
pinMode(IRLED_PIN, OUTPUT);
@nayutaya
nayutaya / mcp4922.ino
Last active December 12, 2015 02:48
ArduinoにMCP4922(12ビットD/Aコンバータ)をSPIで接続し、シリアルコンソールから電圧を設定するスケッチ。
#include "pins_arduino.h"
#include <SPI.h>
const int MCP4922_LDAC = 9;
char buffer[16] = {0};
unsigned char buffer_counter = 0;
int da0_value = 0;
void mcp4922_init()