Skip to content

Instantly share code, notes, and snippets.

Avatar

Constantine Kim elegantcoder

View GitHub Profile
@elegantcoder
elegantcoder / findFirstAnnotatedArgument.java
Last active Sep 25, 2020
[findFirstAnnotatedArgument] #java #springboot #@aspect
View findFirstAnnotatedArgument.java
@Aspect
public class ControllerJsonStyleAdvice {
private Object findFirstAnnotatedArgument(JoinPoint joinPoint, Class annotation) {
Object[] args = joinPoint.getArgs();
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = signature.getMethod();
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
for (int i = 0; i < parameterAnnotations.length; i++) {
@elegantcoder
elegantcoder / gist:9b6592c4ea6e9e6464c7a7792b1473a6
Created Aug 27, 2020 — forked from rctay/gist:819924
[Java][GAE][Mockito] testing servlet requests/responses
View gist:9b6592c4ea6e9e6464c7a7792b1473a6
import static org.junit.Assert.*;
import static org.junit.matchers.JUnitMatchers.*; // for non-hamcrest core matchers
import static org.mockito.Mockito.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
@elegantcoder
elegantcoder / PojoFactoryWithDI.java
Last active Aug 27, 2020
[PojoFactoryWithDI] #java #spring
View PojoFactoryWithDI.java
import org.springframework.stereotype.Component;
import lombok.RequiredArgsConstructor;
@Component
@RequiredArgsConstructor
class AFactory {
private final AComponent aComponent;
View sidekiq.py
from redis import Redis
import simplejson
import os
class Sidekiq(object):
"""Dirt simple Sidekiq client in Python. Can be used to create jobs."""
def __init__(self):
host = os.environ['SIDEKIQ_REDIS_HOST']
port = os.environ['SIDEKIQ_REDIS_PORT']
db = os.environ['SIDEKIQ_REDIS_DB']
@elegantcoder
elegantcoder / korean_marker.rb
Last active Feb 16, 2019
한글 은/는, 이/가 (Powered by ActiveSupport::Multibyte::Chars)
View korean_marker.rb
# require 'active_support/all'
def korean_topic_marker(str)
k = str[-1] # last one char
return '는' if k.mb_chars.decompose.size < 3 # 종성이 없는 경우
return '은'
end
def korean_subject_marker(str)
k = str[-1] # last one char
@elegantcoder
elegantcoder / extract_korean_initials.rb
Last active Jul 22, 2018
한글 초성 분리기
View extract_korean_initials.rb
# 삼성전자 => ㅅㅅㅈㅈ, 유안타제3호스팩 => ㅇㅇㅌㅈ3ㅎㅅㅍ
def extract_korean_initials(keyword)
initials = ['ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ']
# hangul_range = '가'..'힣'
hangul_first = 44032 # '가'.ord
size = 588 # '까'.ord - '가'.ord
keyword.split('').collect do |k|
View korean key bindings.sh
#!/bin/sh
mkdir -p ~/Library/KeyBindings
echo '{
"₩" = ("insertText:", "`");
}' > ~/Library/KeyBindings/DefaultkeyBinding.dict
@elegantcoder
elegantcoder / active_record_2_yaml.rb
Created Sep 16, 2016
for generating Rails test fixture
View active_record_2_yaml.rb
require 'yaml'
def active_record_2_yaml(active_record)
hash = Array.wrap(active_record).as_json.reduce({}) {|memo, item|
memo["id_#{item['id']}"] = item
memo
}
hash.to_yaml
end
View cordova-deviceready-angular-$q.js
/*cordova-deviceready-$q*/
'use strict';
angular.module('elcoCordova', [])
.factory('elcoCordova.onDeviceReady', [
'$q',
'$log',
function ($q, console) {
console.log('elcoCordova.onDeviceReady');
var deferred = $q.defer();
View gist:54ba041b31d9536a8364
event-tracking.com|4webmasters.org|trafficmonetize.org|semalt.semalt.com|social-buttons.com|best-seo-offer.com|buttons-for-website.com|free-share-buttons.com|buttons-for-your-website.com
You can’t perform that action at this time.