svenaas-trim 0.1.1 → 0.1.2

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/Rakefile CHANGED
@@ -20,6 +20,7 @@ spec = Gem::Specification.new do |s|
20
20
  # s.executables = ['trim']
21
21
 
22
22
  # s.add_dependency('gem_name', '~> 0.0.1')
23
+ s.add_dependency('libxml-ruby')
23
24
  end
24
25
 
25
26
  Rake::GemPackageTask.new(spec) do |pkg|
data/lib/trim/version.rb CHANGED
@@ -3,7 +3,7 @@ module Trim
3
3
 
4
4
  MAJOR = 0
5
5
  MINOR = 1
6
- TINY = 1
6
+ TINY = 2
7
7
 
8
8
  def self.to_s # :nodoc:
9
9
  [MAJOR, MINOR, TINY].join('.')
data/lib/trim.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
2
 
3
3
  require 'trim/version.rb'
4
-
5
4
  require 'open-uri'
5
+ require 'libxml'
6
6
 
7
7
  module Trim
8
8
 
@@ -19,11 +19,32 @@ module Trim
19
19
  # Returns a trimmed URL based on +url+, or nil if any error occurs.
20
20
  #
21
21
  # trimmed_url = Trim.trim_simple('http://sample.com/some/long/url')
22
+ #
23
+ # Utilizes the tr.im API method trim_simple
22
24
  #
23
25
  def Trim::trim_simple(url)
24
26
  response = nil
25
27
  open("http://api.tr.im/api/trim_simple?url=#{url}") {|http| response = http.read }
26
28
  response.strip!.size > 0 ? response : nil
27
29
  end
28
-
30
+
31
+ #
32
+ # Returns a trimmed URL based on +url+, or nil if any error occurs.
33
+ #
34
+ # trimmed_url = Trim.trim_url('http://sample.com/some/long/url')
35
+ #
36
+ # Utilizes the tr.im API method trim_url.xml
37
+ #
38
+ def Trim::trim_url(url)
39
+ xml_response = nil
40
+ open("http://api.tr.im/api/trim_url.xml?url=#{url}") {|http| xml_response = http.read }
41
+ get_url_from_xml_response(xml_response)
42
+ end
43
+
44
+ private
45
+ def Trim::get_url_from_xml_response(xml_response)
46
+ parser = LibXML::XML::Parser.string xml_response
47
+ urls = parser.parse.find('url')
48
+ urls.size > 0 ? urls.first.content : nil
49
+ end
29
50
  end
@@ -5,28 +5,96 @@ require 'uri'
5
5
 
6
6
  class TrimTest < Test::Unit::TestCase
7
7
 
8
- context "A simple trim request to a valid URL" do
9
- setup do
10
- @long_url = 'http://www.google.com/'
11
- end
12
-
13
- should "provide a working shortened URL" do
14
- trimmed_url = Trim.trim @long_url
15
- response = Net::HTTP.get_response(URI.parse(trimmed_url))
16
- assert response.kind_of? Net::HTTPRedirection
17
- assert_equal @long_url, response['location']
8
+ context "A valid URL" do
9
+
10
+ setup do
11
+ @long_url = 'http://www.google.com/'
12
+ end
13
+
14
+ context "A trim_simple request" do
15
+ should "provide a working shortened URL" do
16
+ trimmed_url = Trim.trim_simple @long_url
17
+ response = Net::HTTP.get_response(URI.parse(trimmed_url))
18
+ assert response.kind_of?(Net::HTTPRedirection)
19
+ assert_equal @long_url, response['location']
20
+ end
21
+ end
22
+
23
+ context "A trim_url request" do
24
+ should "provide a working shortened URL" do
25
+ trimmed_url = Trim.trim_url @long_url
26
+ response = Net::HTTP.get_response(URI.parse(trimmed_url))
27
+ assert response.kind_of?(Net::HTTPRedirection)
28
+ assert_equal @long_url, response['location']
29
+ end
18
30
  end
31
+
19
32
  end
20
33
 
21
- context "A simple trim request to an invalid URL" do
22
- setup do
34
+ context "An invalid URL" do
35
+
36
+ setup do
23
37
  @long_url = 'www'
24
38
  end
25
-
26
- should "return nil" do
27
- trimmed_url = Trim.trim @long_url
28
- assert_nil trimmed_url
39
+
40
+ context "A trim_simple request" do
41
+ should "return nil" do
42
+ trimmed_url = Trim.trim @long_url
43
+ assert_nil trimmed_url
44
+ end
45
+ end
46
+
47
+ context "A trim_url request" do
48
+ should "return nil" do
49
+ trimmed_url = Trim.trim @long_url
50
+ assert_nil trimmed_url
51
+ end
52
+ end
53
+
54
+ end
55
+
56
+ context "An empty URL" do
57
+
58
+ setup do
59
+ @long_url = ''
60
+ end
61
+
62
+ context "A trim_simple request" do
63
+ should "return nil" do
64
+ trimmed_url = Trim.trim @long_url
65
+ assert_nil trimmed_url
66
+ end
29
67
  end
68
+
69
+ context "A trim_url request" do
70
+ should "return nil" do
71
+ trimmed_url = Trim.trim @long_url
72
+ assert_nil trimmed_url
73
+ end
74
+ end
75
+
76
+ end
77
+
78
+ context "A nil URL" do
79
+
80
+ setup do
81
+ @long_url = nil
82
+ end
83
+
84
+ context "A trim_simple request" do
85
+ should "return nil" do
86
+ trimmed_url = Trim.trim @long_url
87
+ assert_nil trimmed_url
88
+ end
89
+ end
90
+
91
+ context "A trim_url request" do
92
+ should "return nil" do
93
+ trimmed_url = Trim.trim @long_url
94
+ assert_nil trimmed_url
95
+ end
96
+ end
97
+
30
98
  end
31
99
 
32
100
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svenaas-trim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Aas
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-01 00:00:00 -08:00
12
+ date: 2009-03-02 00:00:00 -08:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: libxml-ruby
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description:
17
26
  email: sven.aas@gmail.com
18
27
  executables: []