wurfl_device 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.rvmrc +3 -6
- data/config/unicorn.conf.rb +4 -4
- data/config.ru +2 -0
- data/lib/wurfl_device/cache.rb +2 -1
- data/lib/wurfl_device/capability.rb +14 -3
- data/lib/wurfl_device/cli.rb +20 -13
- data/lib/wurfl_device/settings.rb +444 -470
- data/lib/wurfl_device/user_agent_matcher.rb +1 -1
- data/lib/wurfl_device/version.rb +1 -1
- data/lib/wurfl_device/web_service.rb +7 -3
- data/lib/wurfl_device.rb +6 -12
- metadata +30 -30
data/.rvmrc
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
-
ruby_string="1.9
|
3
|
+
ruby_string="1.9"
|
4
4
|
gemset_name="wurfl_device"
|
5
5
|
|
6
6
|
if rvm list strings | grep -q "${ruby_string}" ; then
|
7
7
|
|
8
|
+
ruby_string=$(rvm list strings | head -1)
|
9
|
+
|
8
10
|
# Load or create the specified environment
|
9
11
|
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" && -s "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}" ]] ; then
|
10
12
|
\. "${rvm_path:-$HOME/.rvm}/environments/${ruby_string}@${gemset_name}"
|
@@ -12,11 +14,6 @@ if rvm list strings | grep -q "${ruby_string}" ; then
|
|
12
14
|
rvm --create "${ruby_string}@${gemset_name}"
|
13
15
|
fi
|
14
16
|
|
15
|
-
if ! command -v bundle ; then
|
16
|
-
echo "automatically installing bundler"
|
17
|
-
gem install bundler
|
18
|
-
fi
|
19
|
-
|
20
17
|
else
|
21
18
|
|
22
19
|
# Notify the user to install the desired interpreter before proceeding.
|
data/config/unicorn.conf.rb
CHANGED
@@ -11,10 +11,10 @@ app_env = ENV['RACK_ENV'] || 'production'
|
|
11
11
|
app_root = ::File.expand_path('../..', __FILE__)
|
12
12
|
|
13
13
|
app_timeout = 60
|
14
|
-
app_workers = WurflDevice::Settings::WEBSERVICE_WORKER
|
15
|
-
app_listen_socket = File.join(WurflDevice::Settings::BASE_DIR, WurflDevice::Settings::WEBSERVICE_SOCKET)
|
16
|
-
app_pid_file = File.join(WurflDevice::Settings::BASE_DIR, WurflDevice::Settings::WEBSERVICE_PID)
|
17
|
-
app_log_file = File.join(WurflDevice::Settings::BASE_DIR, WurflDevice::Settings::WEBSERVICE_LOG)
|
14
|
+
app_workers = ENV['WURFLDEVICE_WORKER'].to_i || WurflDevice::Settings::WEBSERVICE_WORKER
|
15
|
+
app_listen_socket = ENV['WURFLDEVICE_SOCKET'] || File.join(WurflDevice::Settings::BASE_DIR, WurflDevice::Settings::WEBSERVICE_SOCKET)
|
16
|
+
app_pid_file = ENV['WURFLDEVICE_PIDFILE'] || File.join(WurflDevice::Settings::BASE_DIR, WurflDevice::Settings::WEBSERVICE_PID)
|
17
|
+
app_log_file = ENV['WURFLDEVICE_LOGFILE'] || File.join(WurflDevice::Settings::BASE_DIR, WurflDevice::Settings::WEBSERVICE_LOG)
|
18
18
|
|
19
19
|
timeout app_timeout
|
20
20
|
working_directory app_root
|
data/config.ru
CHANGED
data/lib/wurfl_device/cache.rb
CHANGED
@@ -28,7 +28,7 @@ module WurflDevice
|
|
28
28
|
def entries
|
29
29
|
entry_ids = Array.new
|
30
30
|
Cache.storage.keys(build_cache_id('*')).each do |key|
|
31
|
-
entry_ids << key.gsub(build_cache_id(''), '')
|
31
|
+
entry_ids << key.gsub(build_cache_id(''), '') rescue nil
|
32
32
|
end
|
33
33
|
entry_ids
|
34
34
|
end
|
@@ -136,6 +136,7 @@ module WurflDevice
|
|
136
136
|
UserAgentsManufacturers.set user_agent.manufacturer, user_agent, device_id
|
137
137
|
end
|
138
138
|
end
|
139
|
+
Status.set_value 'last_updated', Time.now
|
139
140
|
end
|
140
141
|
|
141
142
|
def update_actual_capabilities(user_agent, capabilities)
|
@@ -39,6 +39,15 @@ module WurflDevice
|
|
39
39
|
end
|
40
40
|
|
41
41
|
protected
|
42
|
+
def get_value(name)
|
43
|
+
return self[name] if self.key?(name)
|
44
|
+
if Settings::CAPABILITY_TO_GROUP.key?(name)
|
45
|
+
capability_group = Settings::CAPABILITY_TO_GROUP[name]
|
46
|
+
return self[capability_group][name] if self.key?(capability_group)
|
47
|
+
end
|
48
|
+
return nil
|
49
|
+
end
|
50
|
+
|
42
51
|
def convert_key(key)
|
43
52
|
key.is_a?(Symbol) ? key.to_s : key
|
44
53
|
end
|
@@ -49,16 +58,18 @@ module WurflDevice
|
|
49
58
|
# capability.shebang # => "/usr/lib/local/ruby"
|
50
59
|
# capability.test_framework?(:rspec) # => options[:test_framework] == :rspec
|
51
60
|
#
|
61
|
+
# need to rewrite this for deep hash entries
|
62
|
+
# use capability to group mapping
|
52
63
|
def method_missing(method, *args, &block)
|
53
64
|
method = method.to_s
|
54
65
|
if method =~ /^(\w+)\?$/
|
55
66
|
if args.empty?
|
56
|
-
!!
|
67
|
+
!!get_value($1)
|
57
68
|
else
|
58
|
-
|
69
|
+
get_value($1) == args.first
|
59
70
|
end
|
60
71
|
else
|
61
|
-
|
72
|
+
get_value(method)
|
62
73
|
end
|
63
74
|
end
|
64
75
|
end
|
data/lib/wurfl_device/cli.rb
CHANGED
@@ -3,6 +3,7 @@ require 'thor'
|
|
3
3
|
require 'benchmark'
|
4
4
|
require 'wurfl_device'
|
5
5
|
require 'yaml'
|
6
|
+
require 'json'
|
6
7
|
|
7
8
|
module WurflDevice
|
8
9
|
class CLI < Thor
|
@@ -48,10 +49,10 @@ module WurflDevice
|
|
48
49
|
unless File.exists?(pid_file)
|
49
50
|
WurflDevice.ui.info "starting webservice..."
|
50
51
|
WurflDevice.ui.info "listening at #{opts.socket}"
|
52
|
+
|
53
|
+
unicorn_bin = %x[which unicorn].strip
|
51
54
|
args = [
|
52
|
-
|
53
|
-
'-S',
|
54
|
-
'unicorn',
|
55
|
+
unicorn_bin,
|
55
56
|
'-E',
|
56
57
|
'production',
|
57
58
|
'-D',
|
@@ -67,18 +68,18 @@ module WurflDevice
|
|
67
68
|
args << opts.port
|
68
69
|
end
|
69
70
|
|
70
|
-
|
71
|
+
ENV['WURFLDEVICE_WORKER'] = opts.worker.to_s
|
72
|
+
ENV['WURFLDEVICE_SOCKET'] = opts.socket.to_s
|
73
|
+
|
74
|
+
exec args.join(' ')
|
71
75
|
end
|
72
76
|
elsif action == 'stop'
|
73
77
|
if File.exists?(pid_file)
|
74
78
|
WurflDevice.ui.info "stopping webservice..."
|
75
|
-
|
76
|
-
|
77
|
-
'-QUIT',
|
78
|
-
|
79
|
-
]
|
80
|
-
|
81
|
-
system(args.join(' '))
|
79
|
+
File.open(pid_file, 'r') do |f|
|
80
|
+
pid = f.gets.to_i
|
81
|
+
exec 'kill', '-QUIT', pid.to_s
|
82
|
+
end
|
82
83
|
end
|
83
84
|
FileUtils.rm_f(pid_file)
|
84
85
|
elsif action == 'restart'
|
@@ -128,6 +129,12 @@ module WurflDevice
|
|
128
129
|
end
|
129
130
|
WurflDevice.ui.info "initializing wurfl device cache."
|
130
131
|
WurflDevice::Cache.initialize_cache(xml_file)
|
132
|
+
|
133
|
+
if options.update?
|
134
|
+
WurflDevice.ui.info "rebuilding user agent cache."
|
135
|
+
WurflDevice::Cache.rebuild_user_agents
|
136
|
+
end
|
137
|
+
|
131
138
|
status true
|
132
139
|
end
|
133
140
|
|
@@ -153,8 +160,8 @@ module WurflDevice
|
|
153
160
|
matched_count = matched_count + 1
|
154
161
|
end
|
155
162
|
WurflDevice.ui.info " " + commify(devices.length) + " device id's"
|
156
|
-
WurflDevice.ui.info " " + commify(user_agents.length) + "
|
157
|
-
WurflDevice.ui.info " " + commify(matched_count) + " user agents matched
|
163
|
+
WurflDevice.ui.info " " + commify(user_agents.length) + " user agents in cache" + user_agents_message
|
164
|
+
WurflDevice.ui.info " " + commify(matched_count) + " user agents matched"
|
158
165
|
|
159
166
|
user_agent_manufacturers = Array.new
|
160
167
|
WurflDevice::Cache::UserAgentsManufacturers.entries.each do |index|
|