nayutaya-bookmark-utility 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+
2
+ NAME = "nayutaya-bookmark-utility"
3
+
4
+ task :default => :gemspec
5
+
6
+ desc "generate gemspec file from template"
7
+ task :gemspec do
8
+ require "erb"
9
+ require "lib/bookmark_utility"
10
+
11
+ src = File.open("#{NAME}.gemspec.erb", "rb") { |file| file.read }
12
+ erb = ERB.new(src, nil, "-")
13
+
14
+ version = BookmarkUtility::VERSION
15
+ date = Time.now.strftime("%Y-%m-%d")
16
+
17
+ files = Dir.glob("**/*").select { |s| File.file?(s) }
18
+ test_files = Dir.glob("test/**").select { |s| File.file?(s) }
19
+
20
+ File.open("#{NAME}.gemspec", "wb") { |file|
21
+ file.write(erb.result(binding))
22
+ }
23
+ end
24
+
25
+ desc "build gem"
26
+ task :build do
27
+ sh "gem build #{NAME}.gemspec"
28
+ end
29
+
30
+ task :push do
31
+ require "lib/bookmark_utility"
32
+ target = "#{NAME}-#{BookmarkUtility::VERSION}.gem"
33
+ sh "gem push #{target}"
34
+ end
@@ -0,0 +1,3 @@
1
+
2
+ require File.join(File.dirname(__FILE__), "bookmark_utility", "version")
3
+ require File.join(File.dirname(__FILE__), "bookmark_utility", "core")
@@ -0,0 +1,13 @@
1
+
2
+ module BookmarkUtility
3
+ CanonicalTable = [
4
+ [%r'\A(http://[a-z]+\.yomiuri\.co\.jp/.+)\?from=[a-z0-9]+\Z', '\1'].freeze,
5
+ [%r'\A(http://journal\.mycom\.co\.jp/.+)\?rt=na\Z', '\1index.html'].freeze,
6
+ [%r'\A(http://mainichi\.jp/.+)\?link_id=[A-Z0-9]+\Z', '\1'].freeze,
7
+ [%r'\A(http://news\.searchina\.ne\.jp/.+)&pt=large\Z', '\1'].freeze,
8
+ [%r'\A(http://www\.asahi\.com/.+)\?ref=rss\Z', '\1'].freeze,
9
+ [%r'\A(http://www\.chunichi\.co\.jp/.+)\?ref=rank\Z', '\1'].freeze,
10
+ [%r'\A(http://www\.jiji\.com/jc/c\?g=.+?)&rel=j7(&k=\d+)\Z', '\1\2'].freeze,
11
+ [%r'\A(http://www\.tetsudo\.com/.+)\?tag=as\.rss\Z', '\1'].freeze,
12
+ ].freeze
13
+ end
@@ -0,0 +1,14 @@
1
+
2
+ require File.join(File.dirname(__FILE__), "canonical_table")
3
+
4
+ module BookmarkUtility
5
+ def self.get_canonical_url(url)
6
+ url = url.dup
7
+ CanonicalTable.each { |pattern, replace|
8
+ if url.sub!(pattern, replace)
9
+ break
10
+ end
11
+ }
12
+ return url
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+
2
+ module BookmarkUtility
3
+ VERSION = "0.0.1"
4
+ end
@@ -0,0 +1,38 @@
1
+
2
+ Gem::Specification.new do |s|
3
+ s.specification_version = 2
4
+ s.required_rubygems_version = Gem::Requirement.new(">= 0")
5
+ s.required_ruby_version = Gem::Requirement.new(">= 1.8.6")
6
+
7
+ s.name = "nayutaya-bookmark-utility"
8
+ s.version = "0.0.1"
9
+ s.date = "2009-11-25"
10
+
11
+ s.authors = ["Yuya Kato"]
12
+ s.email = "yuyakato@gmail.com"
13
+
14
+ s.summary = "bookmark-utility"
15
+ s.description = "bookmark-utility"
16
+ s.homepage = "http://github.com/nayutaya/bookmark-utility/"
17
+
18
+ s.rubyforge_project = nil
19
+ s.has_rdoc = false
20
+ s.require_paths = ["lib"]
21
+
22
+ s.files = [
23
+ "lib/bookmark_utility/canonical_table.rb",
24
+ "lib/bookmark_utility/core.rb",
25
+ "lib/bookmark_utility/version.rb",
26
+ "lib/bookmark_utility.rb",
27
+ "nayutaya-bookmark-utility.gemspec",
28
+ "nayutaya-bookmark-utility.gemspec.erb",
29
+ "Rakefile",
30
+ "test/alltests.rb",
31
+ "test/canonical_test.rb",
32
+ ]
33
+ s.test_files = [
34
+ "test/alltests.rb",
35
+ "test/canonical_test.rb",
36
+ ]
37
+ s.extra_rdoc_files = []
38
+ end
@@ -0,0 +1,33 @@
1
+
2
+ Gem::Specification.new do |s|
3
+ s.specification_version = 2
4
+ s.required_rubygems_version = Gem::Requirement.new(">= 0")
5
+ s.required_ruby_version = Gem::Requirement.new(">= 1.8.6")
6
+
7
+ s.name = <%= NAME.dump %>
8
+ s.version = <%= version.dump %>
9
+ s.date = <%= date.dump %>
10
+
11
+ s.authors = ["Yuya Kato"]
12
+ s.email = "yuyakato@gmail.com"
13
+
14
+ s.summary = "bookmark-utility"
15
+ s.description = "bookmark-utility"
16
+ s.homepage = "http://github.com/nayutaya/bookmark-utility/"
17
+
18
+ s.rubyforge_project = nil
19
+ s.has_rdoc = false
20
+ s.require_paths = ["lib"]
21
+
22
+ s.files = [
23
+ <%- files.each { |path| -%>
24
+ <%= path.dump %>,
25
+ <%- } -%>
26
+ ]
27
+ s.test_files = [
28
+ <%- test_files.each { |path| -%>
29
+ <%= path.dump %>,
30
+ <%- } -%>
31
+ ]
32
+ s.extra_rdoc_files = []
33
+ end
data/test/alltests.rb ADDED
@@ -0,0 +1,4 @@
1
+ #! ruby -Ku
2
+
3
+ require "test/unit"
4
+ Test::Unit::AutoRunner.run(true, File.dirname(__FILE__), ['--pattern=/_test\.rb\Z/'])
@@ -0,0 +1,23 @@
1
+ #! ruby -Ku
2
+
3
+ $:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
4
+
5
+ require "test/unit"
6
+ require "bookmark_utility"
7
+
8
+ class CanonicalTest < Test::Unit::TestCase
9
+ def setup
10
+ @module = BookmarkUtility
11
+ end
12
+
13
+ def test_get_canonical_url
14
+ cases = File.open(File.join(File.dirname(__FILE__), "..", "..", "canonical_cases.txt"), "rb") { |file|
15
+ file.map { |line|
16
+ line.chomp.split(/\t/)
17
+ }
18
+ }
19
+ cases.each { |value, expected|
20
+ assert_equal(expected, @module.get_canonical_url(value), value)
21
+ }
22
+ end
23
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nayutaya-bookmark-utility
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yuya Kato
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-25 00:00:00 +09:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: bookmark-utility
17
+ email: yuyakato@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/bookmark_utility/canonical_table.rb
26
+ - lib/bookmark_utility/core.rb
27
+ - lib/bookmark_utility/version.rb
28
+ - lib/bookmark_utility.rb
29
+ - nayutaya-bookmark-utility.gemspec
30
+ - nayutaya-bookmark-utility.gemspec.erb
31
+ - Rakefile
32
+ - test/alltests.rb
33
+ - test/canonical_test.rb
34
+ has_rdoc: true
35
+ homepage: http://github.com/nayutaya/bookmark-utility/
36
+ licenses: []
37
+
38
+ post_install_message:
39
+ rdoc_options: []
40
+
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.8.6
48
+ version:
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ requirements: []
56
+
57
+ rubyforge_project:
58
+ rubygems_version: 1.3.5
59
+ signing_key:
60
+ specification_version: 2
61
+ summary: bookmark-utility
62
+ test_files:
63
+ - test/alltests.rb
64
+ - test/canonical_test.rb