aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrhenium <re4k@re4k.info>2013-05-22 01:23:28 +0900
committerrhenium <re4k@re4k.info>2013-05-22 01:23:28 +0900
commit89f6473d7314daeae8dce36fdb78b6582dc384ee (patch)
tree7d53cb59c700b1c0369818fa875a2ab4363ef587
parent1de990f91ee62c5680a6d366f79c4edbca4a3a7e (diff)
downloadaclog-89f6473d7314daeae8dce36fdb78b6582dc384ee.tar.gz
use Settinglogic; add some options
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock5
-rw-r--r--app/controllers/tweets_controller.rb5
-rw-r--r--app/controllers/users_controller.rb4
-rw-r--r--app/models/notification.rb2
-rw-r--r--app/models/settings.rb5
-rw-r--r--app/models/tweet.rb2
-rw-r--r--app/models/user.rb2
-rw-r--r--config/initializers/rails_config.rb3
-rw-r--r--config/settings.yml.example62
-rw-r--r--lib/aclog/receiver/collector_connection.rb8
-rw-r--r--lib/aclog/receiver/register_server.rb2
-rw-r--r--lib/aclog/receiver/worker.rb2
13 files changed, 65 insertions, 39 deletions
diff --git a/Gemfile b/Gemfile
index ead5fa7..de42bc0 100644
--- a/Gemfile
+++ b/Gemfile
@@ -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