diff options
author | rhenium <re4k@re4k.info> | 2013-05-22 01:23:28 +0900 |
---|---|---|
committer | rhenium <re4k@re4k.info> | 2013-05-22 01:23:28 +0900 |
commit | 89f6473d7314daeae8dce36fdb78b6582dc384ee (patch) | |
tree | 7d53cb59c700b1c0369818fa875a2ab4363ef587 | |
parent | 1de990f91ee62c5680a6d366f79c4edbca4a3a7e (diff) | |
download | aclog-89f6473d7314daeae8dce36fdb78b6582dc384ee.tar.gz |
use Settinglogic; add some options
-rw-r--r-- | Gemfile | 2 | ||||
-rw-r--r-- | Gemfile.lock | 5 | ||||
-rw-r--r-- | app/controllers/tweets_controller.rb | 5 | ||||
-rw-r--r-- | app/controllers/users_controller.rb | 4 | ||||
-rw-r--r-- | app/models/notification.rb | 2 | ||||
-rw-r--r-- | app/models/settings.rb | 5 | ||||
-rw-r--r-- | app/models/tweet.rb | 2 | ||||
-rw-r--r-- | app/models/user.rb | 2 | ||||
-rw-r--r-- | config/initializers/rails_config.rb | 3 | ||||
-rw-r--r-- | config/settings.yml.example | 62 | ||||
-rw-r--r-- | lib/aclog/receiver/collector_connection.rb | 8 | ||||
-rw-r--r-- | lib/aclog/receiver/register_server.rb | 2 | ||||
-rw-r--r-- | lib/aclog/receiver/worker.rb | 2 |
13 files changed, 65 insertions, 39 deletions
@@ -6,7 +6,7 @@ gem 'mysql2', "> 0.3.12b" gem 'dalli' gem 'counter_culture' -gem 'rails_config' +gem 'settingslogic' gem 'yajl-ruby', require: "yajl" gem 'unicorn' diff --git a/Gemfile.lock b/Gemfile.lock index 40fb89f..cc284da 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,8 +115,6 @@ GEM bundler (>= 1.3.0, < 2.0) railties (= 4.0.0.rc1) sprockets-rails (~> 2.0.0.rc4) - rails_config (0.3.3) - activesupport (>= 3.0) railties (4.0.0.rc1) actionpack (= 4.0.0.rc1) activesupport (= 4.0.0.rc1) @@ -145,6 +143,7 @@ GEM sass (>= 3.1.10) sprockets-rails (~> 2.0.0.rc0) tilt (~> 1.3) + settingslogic (2.0.9) simple_oauth (0.2.0) sprockets (2.9.3) hike (~> 1.2) @@ -202,10 +201,10 @@ DEPENDENCIES mysql2 (> 0.3.12b) omniauth-twitter rails (= 4.0.0.rc1) - rails_config rspec rspec-rails sass-rails (~> 4.0.0.rc1) + settingslogic thin twitter uglifier (>= 1.0.3) diff --git a/app/controllers/tweets_controller.rb b/app/controllers/tweets_controller.rb index 824de2d..737132d 100644 --- a/app/controllers/tweets_controller.rb +++ b/app/controllers/tweets_controller.rb @@ -136,10 +136,10 @@ class TweetsController < ApplicationController if params[:full] == "true" @user_limit = nil else - @user_limit = 100 + @user_limit = Settings.tweets.users.count_lot end else - @user_limit = 20 + @user_limit = Settings.tweets.users.count_default end if request.format == :json @@ -155,7 +155,6 @@ class TweetsController < ApplicationController key = "tweets/#{params.to_param}" p ids = Rails.cache.read(key) if not ids - tweets.load Rails.cache.write(key, tweets.map(&:id), expires_in: expires_in) tweets else diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 52eecdc..98a28aa 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -8,14 +8,14 @@ class UsersController < ApplicationController def discovered_by user_required - @result = @user.count_discovered_by.take(50) + @result = @user.count_discovered_by.take(Settings.user_ranking.count) @caption = "Discovered By" render "_user_ranking" end def discovered_users user_required - @result = @user.count_discovered_users.take(50) + @result = @user.count_discovered_users.take(Settings.user_ranking.count) @caption = "Discovered Users" render "_user_ranking" end diff --git a/app/models/notification.rb b/app/models/notification.rb index 321309a..4f5a68e 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -1,6 +1,6 @@ class Notification def self.notify_favorite(tweet) - if [50, 100, 250, 500, 1000].include?(tweet.favorites.count) + if Settings.notification.favorites.include?(tweet.favorites.count) reply_favs(tweet, tweet.favorites.count) if tweet.user.registered? end end diff --git a/app/models/settings.rb b/app/models/settings.rb new file mode 100644 index 0000000..e9ded95 --- /dev/null +++ b/app/models/settings.rb @@ -0,0 +1,5 @@ +class Settings < Settingslogic + namespace Rails.env + source Rails.root.join("config", "settings.yml") +end + diff --git a/app/models/tweet.rb b/app/models/tweet.rb index e8fe41b..16f0b32 100644 --- a/app/models/tweet.rb +++ b/app/models/tweet.rb @@ -73,7 +73,7 @@ class Tweet < ActiveRecord::Base params[:page] ||= "1" if options[:force_page] count = params[:count].to_i - count = 10 unless (1..100) === count + count = Settings.tweets.count_default unless (1..Settings.tweets.count_max) === count ret = limit(count) diff --git a/app/models/user.rb b/app/models/user.rb index 7fd0962..7009b59 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,3 +1,5 @@ +require "ostruct" + class User < ActiveRecord::Base has_many :tweets, dependent: :delete_all has_many :favorites, dependent: :delete_all diff --git a/config/initializers/rails_config.rb b/config/initializers/rails_config.rb deleted file mode 100644 index 5378de9..0000000 --- a/config/initializers/rails_config.rb +++ /dev/null @@ -1,3 +0,0 @@ -RailsConfig.setup do |config| - config.const_name = "Settings" -end
\ No newline at end of file diff --git a/config/settings.yml.example b/config/settings.yml.example index 15396e0..e7497ec 100644 --- a/config/settings.yml.example +++ b/config/settings.yml.example @@ -1,22 +1,46 @@ -collector: - consumer: - - key: "consumer key of collector (register)" - secret: "consumer secret" - - key: "if change consumer key" - secret: - consumer_version: 0 # which consumer (0..) +default: &default + base_url: "http://example.com/" # base url + + collector: + server_port: 42106 + secret_key: "secret key to authorize workers" + count: 1 # workers count + consumer_version: 0 # which consumer (0..) + consumer: + - key: "consumer key of collector (register)" + secret: "consumer secret" + - key: "if change consumer key" + secret: + + notification: + enabled: false + consumer: + key: "consumer key of notification account" + secret: "consumer secret" + token: + - token: "access token of notification account" + secret: "access token secret" + favorites: + - 50 + - 100 + - 250 + + tweets: + count_default: 10 + count_max: 100 + users: + count_default: 20 + count_lot: 100 + + user_ranking: + count: 50 -notification: - enabled: false - consumer: - key: "consumer key of notification account" - secret: "consumer secret" - token: - - token: "access token of notification account" - secret: "access token secret" +development: + <<: *default -listen_port: 42106 -secret_key: "secret key to authorize workers" -worker_count: 1 # workers count -base_url: "http://example.com/" # base url +test: + <<: *default + +production: + <<: *default diff --git a/lib/aclog/receiver/collector_connection.rb b/lib/aclog/receiver/collector_connection.rb index 42e825f..246f5e0 100644 --- a/lib/aclog/receiver/collector_connection.rb +++ b/lib/aclog/receiver/collector_connection.rb @@ -37,7 +37,7 @@ module Aclog def unbind Rails.logger.info("Connection closed(#{@worker_number})") - @connections.delete_if{|k, v| v == self} + @connections.delete_if {|k, v| v == self } end def receive_data(data) @@ -94,13 +94,13 @@ module Aclog def receive_init(msg) secret_key = msg["secret_key"] worker_number = msg["worker_number"] - unless secret_key == Settings.secret_key + unless secret_key == Settings.collector.secret_key Rails.logger.warn("Invalid secret_key(?:#{worker_number}): \"#{secret_key}\"") send_object(type: "fatal", message: "Invalid secret_key") close_connection_after_writing return end - if worker_number > Settings.worker_count + if worker_number > Settings.collector.count Rails.logger.warn("Invalid worker_number: #{worker_number}, secret_key: \"#{secret_key}\"") send_object(type: "fatal", message: "Invalid worker_number") close_connection_after_writing @@ -116,7 +116,7 @@ module Aclog Rails.logger.info("Connected(#{@worker_number})") send_object(type: "ok", message: "Connected") - Account.where("id % ? = ?", Settings.worker_count, @worker_number).each do |account| + Account.where("id % ? = ?", Settings.collector.count, @worker_number).each do |account| send_account(account) end end diff --git a/lib/aclog/receiver/register_server.rb b/lib/aclog/receiver/register_server.rb index 0358c23..ea097f1 100644 --- a/lib/aclog/receiver/register_server.rb +++ b/lib/aclog/receiver/register_server.rb @@ -8,7 +8,7 @@ module Aclog def register(account_) account = Marshal.load(account_) - con_num = account.id % Settings.worker_count + con_num = account.id % Settings.collector.count con = @connections[con_num] if con con.send_account(account) diff --git a/lib/aclog/receiver/worker.rb b/lib/aclog/receiver/worker.rb index 330d872..9896853 100644 --- a/lib/aclog/receiver/worker.rb +++ b/lib/aclog/receiver/worker.rb @@ -19,7 +19,7 @@ module Aclog EM.run do connections = {} - collector_server = EM.start_server("0.0.0.0", Settings.listen_port, CollectorConnection, connections) + collector_server = EM.start_server("0.0.0.0", Settings.collector.server_port, CollectorConnection, connections) reg_svr_listener = MessagePack::RPC::UNIXServerTransport.new(_sock_path) register_server = MessagePack::RPC::Server.new |