jpmobile 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. data/.gitignore +6 -0
  2. data/{test/rails/rails_root/vendor/plugins/jpmobile/MIT-LICENSE → MIT-LICENSE} +0 -0
  3. data/README.rdoc +16 -6
  4. data/Rakefile +14 -0
  5. data/VERSION.yml +4 -0
  6. data/init.rb +3 -0
  7. data/install.rb +1 -0
  8. data/jpmobile.gemspec +299 -0
  9. data/lib/jpmobile.rb +0 -2
  10. data/lib/jpmobile/emoticon.rb +16 -2
  11. data/lib/jpmobile/emoticon/z_combine.rb +17 -4
  12. data/lib/jpmobile/filter.rb +2 -3
  13. data/lib/jpmobile/mobile/abstract_mobile.rb +6 -0
  14. data/lib/jpmobile/mobile/docomo.rb +24 -1
  15. data/lib/jpmobile/mobile/z_ip_addresses_au.rb +3 -2
  16. data/lib/jpmobile/mobile/z_ip_addresses_docomo.rb +4 -1
  17. data/lib/jpmobile/request_with_mobile.rb +4 -1
  18. data/{test/rails/rails_root/vendor/plugins/jpmobile/spec → spec}/spec.opts +0 -0
  19. data/spec/spec_helper.rb +36 -0
  20. data/spec/unit/detect_by_email_spec.rb +31 -0
  21. data/{test/rails/rails_root/vendor/plugins/jpmobile/spec → spec}/unit/detect_by_ua_spec.rb +11 -13
  22. data/spec/unit/is_carrier_spec.rb +93 -0
  23. data/spec/unit/spec_helper.rb +5 -0
  24. data/spec/unit/util_spec.rb +30 -0
  25. data/spec/unit/valid_ip_spec.rb +60 -0
  26. data/{test/rails/rails_root/vendor/plugins/jpmobile/tasks → tasks}/jpmobile_tasks.rake +3 -3
  27. data/test/legacy/autoload_test.rb +2 -1
  28. data/test/legacy/docomo_test.rb +39 -0
  29. data/test/legacy/emoticon_functional_test.rb +21 -19
  30. data/test/legacy/emoticon_test.rb +12 -12
  31. data/test/legacy/filter_test.rb +10 -8
  32. data/test/legacy/helper.rb +32 -3
  33. data/test/legacy/softbank_test.rb +2 -0
  34. data/test/rails/.gitignore +1 -0
  35. data/test/rails/overrides/app/controllers/filter_controller.rb +10 -0
  36. data/test/rails/overrides/spec/controllers/docomo_guid_spec.rb +2 -0
  37. data/test/rails/overrides/spec/controllers/docomo_spec.rb +2 -0
  38. data/test/rails/overrides/spec/controllers/emobile_spec.rb +2 -0
  39. data/test/rails/overrides/spec/controllers/filter_spec.rb +8 -7
  40. data/test/rails/overrides/spec/controllers/pc_spec.rb +2 -0
  41. data/test/rails/overrides/spec/controllers/softbank_emulator_spec.rb +2 -0
  42. data/test/rails/overrides/spec/controllers/template_path_spec.rb +2 -0
  43. data/test/rails/overrides/spec/controllers/trans_sid_spec.rb +1 -0
  44. data/test/rails/overrides/spec/helpers/helpers_spec.rb +2 -0
  45. data/test/rails/overrides/spec/spec_helper.rb +15 -0
  46. data/test/rails/rails_root/app/controllers/filter_controller.rb +0 -23
  47. data/test/rails/rails_root/app/controllers/mobile_spec_controller.rb +1 -1
  48. data/test/rails/rails_root/app/controllers/template_path_controller.rb +3 -0
  49. data/test/rails/rails_root/app/helpers/application_helper.rb +0 -1
  50. data/test/rails/rails_root/config/boot.rb +13 -110
  51. data/test/rails/rails_root/config/environment.rb +4 -41
  52. data/test/rails/rails_root/config/environments/development.rb +22 -13
  53. data/test/rails/rails_root/config/environments/production.rb +41 -20
  54. data/test/rails/rails_root/config/environments/test.rb +35 -28
  55. data/test/rails/rails_root/config/initializers/backtrace_silencers.rb +2 -2
  56. data/test/rails/rails_root/config/initializers/inflections.rb +1 -1
  57. data/test/rails/rails_root/config/initializers/session_store.rb +2 -15
  58. data/test/rails/rails_root/config/routes.rb +6 -42
  59. data/test/rails/rails_root/db/schema.rb +24 -7
  60. data/test/rails/rails_root/db/seeds.rb +2 -2
  61. data/test/rails/rails_root/spec/helpers/helpers_spec.rb +4 -2
  62. data/test/rails/rails_root/spec/spec_helper.rb +19 -35
  63. data/test/rails/rails_root/test/performance/browsing_test.rb +2 -2
  64. data/test/rails/rails_root/test/test_helper.rb +2 -27
  65. data/test/rails/rails_root/vendor/plugins/jpmobile/init.rb +1 -1
  66. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile.rb +39 -25
  67. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/docomo_guid.rb +2 -1
  68. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/email.rb +3 -4
  69. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon.rb +24 -8
  70. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/conversion_table.rb +10 -9
  71. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/z_combine.rb +17 -4
  72. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/filter.rb +43 -136
  73. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/helpers.rb +5 -18
  74. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb +24 -16
  75. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb +42 -85
  76. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb +25 -2
  77. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb +28 -3
  78. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/display.rb +29 -26
  79. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/docomo.rb +60 -11
  80. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/softbank.rb +16 -41
  81. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/willcom.rb +1 -10
  82. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/z_ip_addresses_au.rb +3 -2
  83. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/z_ip_addresses_docomo.rb +4 -1
  84. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/position.rb +4 -3
  85. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/request_with_mobile.rb +14 -13
  86. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/trans_sid.rb +52 -35
  87. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb +68 -0
  88. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/spec_helper.rb +3 -2
  89. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/detect_by_email_spec.rb +21 -27
  90. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/is_carrier_spec.rb +56 -84
  91. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/spec_helper.rb +1 -2
  92. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/util_spec.rb +8 -2
  93. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/valid_ip_spec.rb +43 -52
  94. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/disabled_update_display_info_docomo.rb +0 -0
  95. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/update_ip_addresses_au.rb +0 -0
  96. data/tools/emoji/genregexp.rb +47 -0
  97. metadata +348 -253
  98. data/test/rails/rails_root/README +0 -243
  99. data/test/rails/rails_root/Rakefile +0 -10
  100. data/test/rails/rails_root/app/controllers/docomo_guid_controller.rb +0 -13
  101. data/test/rails/rails_root/app/controllers/trans_sid_controller.rb +0 -28
  102. data/test/rails/rails_root/app/views/filter/index.html.erb +0 -0
  103. data/test/rails/rails_root/app/views/hankaku_filter/index.html.erb +0 -0
  104. data/test/rails/rails_root/app/views/template_path/_partial.html.erb +0 -1
  105. data/test/rails/rails_root/app/views/template_path/_partial_mobile.html.erb +0 -1
  106. data/test/rails/rails_root/app/views/template_path/_partial_mobile_docomo.html.erb +0 -1
  107. data/test/rails/rails_root/app/views/template_path/index.html.erb +0 -1
  108. data/test/rails/rails_root/app/views/template_path/index_mobile.html.erb +0 -1
  109. data/test/rails/rails_root/app/views/template_path/index_mobile_docomo.html.erb +0 -1
  110. data/test/rails/rails_root/app/views/template_path/partial.html.erb +0 -2
  111. data/test/rails/rails_root/config/database.yml +0 -22
  112. data/test/rails/rails_root/config/initializers/new_rails_defaults.rb +0 -21
  113. data/test/rails/rails_root/config/locales/en.yml +0 -5
  114. data/test/rails/rails_root/db/development.sqlite3 +0 -0
  115. data/test/rails/rails_root/db/test.sqlite3 +0 -0
  116. data/test/rails/rails_root/doc/README_FOR_APP +0 -2
  117. data/test/rails/rails_root/lib/tasks/rspec.rake +0 -165
  118. data/test/rails/rails_root/log/development.log +0 -38
  119. data/test/rails/rails_root/log/production.log +0 -0
  120. data/test/rails/rails_root/log/server.log +0 -0
  121. data/test/rails/rails_root/log/test.log +0 -451
  122. data/test/rails/rails_root/public/404.html +0 -30
  123. data/test/rails/rails_root/public/422.html +0 -30
  124. data/test/rails/rails_root/public/500.html +0 -30
  125. data/test/rails/rails_root/public/favicon.ico +0 -0
  126. data/test/rails/rails_root/public/images/rails.png +0 -0
  127. data/test/rails/rails_root/public/index.html +0 -275
  128. data/test/rails/rails_root/public/javascripts/application.js +0 -2
  129. data/test/rails/rails_root/public/javascripts/controls.js +0 -963
  130. data/test/rails/rails_root/public/javascripts/dragdrop.js +0 -973
  131. data/test/rails/rails_root/public/javascripts/effects.js +0 -1128
  132. data/test/rails/rails_root/public/javascripts/prototype.js +0 -4320
  133. data/test/rails/rails_root/public/robots.txt +0 -5
  134. data/test/rails/rails_root/script/about +0 -4
  135. data/test/rails/rails_root/script/console +0 -3
  136. data/test/rails/rails_root/script/dbconsole +0 -3
  137. data/test/rails/rails_root/script/destroy +0 -3
  138. data/test/rails/rails_root/script/generate +0 -3
  139. data/test/rails/rails_root/script/performance/benchmarker +0 -3
  140. data/test/rails/rails_root/script/performance/profiler +0 -3
  141. data/test/rails/rails_root/script/plugin +0 -3
  142. data/test/rails/rails_root/script/runner +0 -3
  143. data/test/rails/rails_root/script/server +0 -3
  144. data/test/rails/rails_root/spec/controllers/docomo_guid_spec.rb +0 -77
  145. data/test/rails/rails_root/spec/controllers/docomo_spec.rb +0 -28
  146. data/test/rails/rails_root/spec/controllers/emobile_spec.rb +0 -35
  147. data/test/rails/rails_root/spec/controllers/filter_spec.rb +0 -157
  148. data/test/rails/rails_root/spec/controllers/pc_spec.rb +0 -11
  149. data/test/rails/rails_root/spec/controllers/softbank_emulator_spec.rb +0 -40
  150. data/test/rails/rails_root/spec/controllers/template_path_spec.rb +0 -115
  151. data/test/rails/rails_root/spec/controllers/trans_sid_spec.rb +0 -99
  152. data/test/rails/rails_root/spec/rcov.opts +0 -2
  153. data/test/rails/rails_root/spec/rspec.rake +0 -165
  154. data/test/rails/rails_root/spec/spec.opts +0 -4
  155. data/test/rails/rails_root/vendor/plugins/jpmobile/CHANGELOG +0 -7
  156. data/test/rails/rails_root/vendor/plugins/jpmobile/README.rdoc +0 -239
  157. data/test/rails/rails_root/vendor/plugins/jpmobile/Rakefile +0 -116
  158. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_request.rb +0 -5
  159. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/auth.rb +0 -55
  160. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/combined_logger.rb +0 -54
  161. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/request.rb +0 -7
  162. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/trans_sid.rb +0 -14
  163. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/version.rb +0 -9
@@ -1,116 +0,0 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'rake/clean'
4
- require 'rake/testtask'
5
- require 'rake/packagetask'
6
- require 'rake/gempackagetask'
7
- require 'rake/rdoctask'
8
- require 'rake/contrib/rubyforgepublisher'
9
- require 'fileutils'
10
- include FileUtils
11
- require File.join(File.dirname(__FILE__), 'lib', 'jpmobile', 'version')
12
-
13
- #
14
- AUTHOR = "dara"
15
- EMAIL = "dara@shidara.net"
16
- DESCRIPTION = "A Rails plugin for Japanese mobile-phones"
17
- RUBYFORGE_PROJECT = "jpmobile"
18
- HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
19
- BIN_FILES = %w( )
20
-
21
- NAME = "jpmobile"
22
- REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
23
- VERS = ENV['VERSION'] || (Jpmobile::VERSION::STRING + (REV ? ".#{REV}" : ""))
24
- CLEAN.include ['**/.*.sw?', '*.gem', '.config']
25
- RDOC_OPTS = ['--quiet', '--title', "jpmobile documentation",
26
- "--opname", "index.html",
27
- "--line-numbers",
28
- "--main", "README.rdoc",
29
- "--inline-source"]
30
-
31
- desc "Packages up jpmobile gem."
32
- task :default => [:test, :spec]
33
- task :package => [:clean]
34
-
35
- desc 'Default: run unit tests.'
36
- task :default => :test
37
-
38
-
39
- desc 'Generate documentation for the jpmobile plugin.'
40
- Rake::RDocTask.new(:rdoc) do |rdoc|
41
- rdoc.rdoc_dir = 'doc'
42
- rdoc.title = 'Jpmobile'
43
- rdoc.options << '--line-numbers' << '--inline-source' << '-c UTF-8'
44
- rdoc.rdoc_files.include('README.rdoc')
45
- rdoc.rdoc_files.include('CHANGELOG')
46
- rdoc.rdoc_files.include('lib/**/*.rb')
47
- end
48
-
49
- spec =
50
- Gem::Specification.new do |s|
51
- s.name = NAME
52
- s.version = VERS
53
- s.platform = Gem::Platform::RUBY
54
- s.has_rdoc = true
55
- s.extra_rdoc_files = ["README.rdoc", "CHANGELOG"]
56
- s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)/']
57
- s.summary = DESCRIPTION
58
- s.description = DESCRIPTION
59
- s.author = AUTHOR
60
- s.email = EMAIL
61
- s.homepage = HOMEPATH
62
- s.executables = BIN_FILES
63
- s.rubyforge_project = RUBYFORGE_PROJECT
64
- s.bindir = "bin"
65
- s.require_path = "lib"
66
-
67
- s.add_runtime_dependency('actionpack', '>=2.3.2')
68
- s.add_development_dependency('rspec', '>=1.1.12')
69
- s.add_development_dependency('rspec-rails', '>=1.1.12')
70
- s.add_development_dependency('rspec-fixture', '>=0.0.2')
71
-
72
- s.files = %w(README.rdoc CHANGELOG Rakefile) +
73
- Dir.glob("{bin,doc,test,lib,templates,generator,extras,website,script}/**/*") +
74
- Dir.glob("ext/**/*.{h,c,rb}") +
75
- Dir.glob("examples/**/*.rb") +
76
- Dir.glob("tools/*.rb")
77
-
78
- # s.extensions = FileList["ext/**/extconf.rb"].to_a
79
- end
80
-
81
- Rake::GemPackageTask.new(spec) do |p|
82
- p.need_tar = true
83
- p.gem_spec = spec
84
- end
85
-
86
- task :install do
87
- name = "#{NAME}-#{VERS}.gem"
88
- sh %{rake package}
89
- sh %{sudo gem install pkg/#{name}}
90
- end
91
-
92
- task :uninstall => [:clean] do
93
- sh %{sudo gem uninstall #{NAME}}
94
- end
95
-
96
- desc "Publish the API documentation"
97
- task :pdoc => [:rdoc] do
98
- sh "rsync -azv --delete doc/ dara@rubyforge.org:/var/www/gforge-projects/jpmobile/rdoc/"
99
- end
100
-
101
- desc "Update misc tables"
102
- task :update do
103
- Dir.glob("tools/update_*.rb").each do |path|
104
- ruby path
105
- end
106
- end
107
-
108
- desc "Release helper"
109
- task :rel => [:gem] do
110
- puts "-"*40
111
- puts "rubyforge add_release #{NAME} #{NAME} #{VERS} pkg/#{NAME}-#{VERS}.gem"
112
- puts "git tag #{VERS}"
113
- end
114
-
115
- task :test => ['test:legacy', 'spec:unit', 'test:rails']
116
- load 'tasks/jpmobile_tasks.rake'
@@ -1,5 +0,0 @@
1
- require 'jpmobile/request_with_mobile'
2
-
3
- class ActionController::Request
4
- include Jpmobile::RequestWithMobile
5
- end
@@ -1,55 +0,0 @@
1
- module Jpmobile
2
- module Rack
3
- # in your_app.ru
4
- #
5
- # check ip
6
- # require 'jpmobile/rack'
7
- # use Jpmobile::Rack::Auth::Docomo
8
-
9
- # (but allow localhost), {
10
- # :ident => %w( xxxxxx ),
11
- # :check_ip => true,
12
- # :allow_ip => %w( 127.0.0.1 )
13
- # } # you can use block
14
-
15
- # req is Jpmobile::Rack::Request's subclass instance.
16
- # require 'jpmobile/rack'
17
- # use Jpmobile::Rack::Auth {|req|
18
- # Your::Model::AuSubno.count(:subno => req.ident) != 0
19
- # }
20
- class Auth
21
- FORBIDDEN = [403, {'Content-Type' => 'text/plain' }, 'Forbidden' ]
22
-
23
- def initialize(app, hash=nil, &block)
24
- @app = app
25
- if hash
26
- @allow_ip = hash[:allow_ip]
27
- end
28
- @cond = block
29
- end
30
-
31
- def career
32
- end
33
-
34
- def call(env)
35
- request = Request.new(env)
36
-
37
- if request.mobile? and request.valid_ip?
38
- @app.call(env)
39
- else
40
- FORBIDDEN
41
- end
42
- end
43
-
44
- ::Jpmobile::Mobile.constants.each do |career|
45
- klass = Class.new(self)
46
- klass.class_eval do
47
- define_method :career do
48
- ::Jpmobile::Mobile.const_get(career)
49
- end
50
- end
51
- const_set(career, klass)
52
- end
53
- end
54
- end
55
- end
@@ -1,54 +0,0 @@
1
- module Jpmobile
2
- module Rack
3
- # Rack::CommonLogger show too few infomation to debugging mobile web application.
4
- # So you can Rack::Jpmobile::CombinedLogger as alternate.
5
- # SYNOPSIS
6
- # in your_app.up
7
- # require 'jpmobile/rack'
8
- # class Rack::CommonLogger
9
- # include Jpmobile::Rack::CombinedLogger
10
- # end
11
- #
12
- # use Rack::CommonLogger, STDERR # you need not write this when you use rackup on development.
13
- #
14
- module CombinedLogger
15
-
16
- # XXX: It's evil way for replacing Rack::CommonLogger#each.
17
- def self.included klass
18
- klass.class_eval do
19
- alias orig_each each
20
- remove_method :each
21
- end
22
- end
23
-
24
- def each
25
- length = 0
26
- @body.each { |part|
27
- length += part.size
28
- yield part
29
- }
30
-
31
- @now = Time.now
32
-
33
- # Combined Log Format: http://httpd.apache.org/docs/1.3/logs.html#combined
34
- # 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"
35
- # "%h %l %u [%t] \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
36
- @logger << %{%s - %s [%s] "%s %s%s %s" %d %s %s "%s" %0.4f\n} %
37
- [
38
- @env['HTTP_X_FORWARDED_FOR'] || @env["REMOTE_ADDR"] || "-",
39
- @env["REMOTE_USER"] || @env["HTTP_X_DCMGUID"] || @env["HTTP_X_UP_SUBNO"] || @env["HTTP_X_JPHONE_UID"] || @env["HTTP_X_EM_UID"] || "-",
40
- @now.strftime("%d/%b/%Y %H:%M:%S"),
41
- @env["REQUEST_METHOD"],
42
- @env["PATH_INFO"],
43
- @env["QUERY_STRING"].empty? ? "" : "?"+@env["QUERY_STRING"],
44
- @env["HTTP_VERSION"],
45
- @status.to_s[0..3],
46
- (length.zero? ? "-" : length.to_s),
47
- @env["HTTP_REFERER"] ? %{"#{@env['Referer']}"} : '-',
48
- @env["HTTP_USER_AGENT"],
49
- @now - @time
50
- ]
51
- end
52
- end
53
- end
54
- end
@@ -1,7 +0,0 @@
1
- module Jpmobile
2
- module Rack
3
- class Request < ::Rack::Request
4
- include ::Jpmobile::RequestWithMobile
5
- end
6
- end
7
- end
@@ -1,14 +0,0 @@
1
- # = セッションID を QUERY_STRING などから上書きする処理
2
- module Jpmobile
3
- module Rack
4
- class TransSid
5
- def initialize(app)
6
- @app = app
7
- end
8
-
9
- def call(env)
10
- @app.call(env)
11
- end
12
- end
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- module Jpmobile #:nodoc:
2
- module VERSION #:nodoc:
3
- MAJOR = 0
4
- MINOR = 0
5
- TINY = 6
6
-
7
- STRING = [MAJOR, MINOR, TINY].join('.')
8
- end
9
- end