<commit_before># Hsquare

Hsquare는 [Kakao developers](http://developers.kakao.com) Open Platform API의
루비 클라이언트 라이브러리입니다.

현재는 푸시 알림 기능을 제공하며, 앞으로 인증 및 카카오톡, 카카오스토리 포스팅
등으로 지원 기능을 확장해 나갈 계획입니다.

## 설치하기

애플리케이션의 Gemfile에 hsquare를 추가합니다:

    gem 'hsquare'

Bundler를 이용해 설치합니다:

    $ bundle

## 사용하기

### 애플리케이션 생성

Hsquare를 사용하려면 Kakao Developers에서 애플리케이션을 생성해야 합니다.
Kakao Developers에 가입 및 로그인하신 후
[내 애플리케이션](https://developers.kakao.com/apps) 페이지에서 애플리케이션을
생성해 주세요.

### Hsquare 설정

애플리케이션 생성 후, 내 애플리케이션 페이지에서 앱 키를 얻을 수 있습니다.
4개의 앱 키 중 Admin 키를 Hsquare에 설정합니다:

```ruby
# In config/initializers/hsquare.rb

Hsquare.config do |config|
  config.admin_key = '내 애플리케이션의 Admin 키'
end
```

Admin 키는 외부에 노출되지 않도록 보안에 주의를 기울여야 합니다. 환경 변수
등으로 소스 컨트롤에서 분리하여 설정하도록 처리하는 것을 추천합니다.

### 푸시 알림

#### 기기의 푸시 토큰 등록

애플리케이션 서버에서 푸시 토큰을 등록해야 한다면 `Hsquare::Device` 클래스의
객체를 다음과 같이 생성하고,

```ruby
device = Hsquare::Device.new(
  id: (애플리케이션 내 기기 ID),
  user_id: (애플리케이션 사용자 ID),
  token: '<PASSWORD>',
  type: '(apns 또는 gcm)'
)
```

해당 객체의 `#register` 메소드를 호출하여 기기의 푸시 토큰을 등록할 수
있습니다.

```ruby
device.register # Open Platform API가 호출됩니다.
```

클라이언트에서 푸시 토큰을 등록하도록 처리되어 있다면 이 과정은 거치지 않아도
됩니다.

#### 알림 전송

`Hsquare::Notification` 클래스의 객체를 생성하고 `#deliver` 메소드로 알림을
전송합니다.<commit_msg>Refine README<commit_after># Hsquare

Hsquare는 [Kakao developers](http://developers.kakao.com) Open Platform API의
루비 클라이언트 라이브러리입니다.

현재는 푸시 알림 기능을 제공하며, 앞으로 인증 및 카카오톡, 카카오스토리 포스팅
등으로 지원 기능을 확장해 나갈 계획입니다.

## 설치하기

애플리케이션의 Gemfile에 hsquare를 추가합니다:

    gem 'hsquare'

Bundler를 이용해 설치합니다:

    $ bundle

## 사용하기

### 애플리케이션 생성

Hsquare를 사용하려면 Kakao Developers에서 애플리케이션을 생성해야 합니다.
Kakao Developers에 가입 및 로그인하신 후
[내 애플리케이션](https://developers.kakao.com/apps) 페이지에서 애플리케이션을
생성해 주세요.

### Hsquare 설정

애플리케이션 생성 후, 내 애플리케이션 페이지에서 앱 키를 얻을 수 있습니다.
4개의 앱 키 중 Admin 키를 Hsquare에 설정합니다:

```ruby
# In config/initializers/hsquare.rb

Hsquare.config do |config|
  config.admin_key = '내 애플리케이션의 Admin 키'
end
```

Admin 키는 외부에 노출되지 않도록 보안에 주의를 기울여야 합니다. 환경 변수
등으로 소스 컨트롤에서 분리하여 설정하도록 처리하는 것을 추천합니다.

### 푸시 알림

#### 기기의 푸시 토큰 등록

애플리케이션 서버에서 푸시 토큰을 등록해야 한다면 `Hsquare::Device` 클래스의
객체를 다음과 같이 생성하고,

```ruby
device = Hsquare::Device.new(
  id: 'device-1',           # 애플리케이션 내 기기 ID
  user_id: 1,               # 애플리케이션 사용자 ID
  token: '<PASSWORD>', # 푸시 토큰
  type: 'apns'              # apns 또는 gcm
)
```

해당 객체의 `#register` 메소드를 호출하여 기기의 푸시 토큰을 등록할 수
있습니다.

```ruby
device.register # 기기를 등록하는 Open Platform API를 호출합니다.
```

클라이언트에서 푸시 토큰을 등록하도록 처리되어 있다면 이 과정은 거치지 않아도
됩니다.

#### 알림 전송

`Hsquare::Notification` 클래스의 객체를 생성하고 `#deliver` 메소드로 알림을
전송합니다.
{'fraction_non_alphanumeric': 0.10431100846805234, 'fraction_numerical': 0.001539645881447267, 'mean_word_length': 3.382799325463744, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1104204', 'n_tokens_mistral': 1850, 'n_tokens_neox': 2385, 'n_words': 381}