io_tools 0.2.3 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE CHANGED
@@ -1,20 +1,13 @@
1
- Copyright (c) 2009 Christopher Burnett
1
+ This program is free software: you can redistribute it and/or modify
2
+ it under the terms of the GNU General Public License as published by
3
+ the Free Software Foundation, either version 3 of the License, or
4
+ (at your option) any later version.
2
5
 
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
6
+ This program is distributed in the hope that it will be useful,
7
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
8
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9
+ GNU General Public License for more details.
10
10
 
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
11
+ You should have received a copy of the GNU General Public License
12
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
13
13
 
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.mdown CHANGED
@@ -1,8 +1,6 @@
1
1
  ## io_tools ##
2
2
 
3
-
4
-
5
- Extracted modules from the Posterous Blog Importer. Used for conforming RSS Feeds or results from one API to another.
3
+ Extracted modules from the Posterous Blog Importer. A way to structure the code needed to connect to various APIs and conform the results to your liking. At it's core is a very simple module that tries to keep things sane when communicating with a multitude of platforms.
6
4
 
7
5
  ## Installation ##
8
6
 
data/Rakefile CHANGED
@@ -15,8 +15,6 @@ begin
15
15
  gem.add_development_dependency "mocha"
16
16
 
17
17
  gem.add_dependency "nokogiri", ">= 1.4.2"
18
- gem.add_dependency "sinatra"
19
- gem.add_dependency "haml"
20
18
  gem.add_dependency "xml-simple"
21
19
  gem.add_dependency "feedtools", ">= 0.2.29"
22
20
  gem.add_dependency "vegas", "~> 0.1.2"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.5
data/io_tools.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{io_tools}
8
- s.version = "0.2.3"
8
+ s.version = "0.2.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Christopher Burnett"]
12
- s.date = %q{2010-08-18}
12
+ s.date = %q{2010-08-27}
13
13
  s.default_executable = %q{io-server}
14
14
  s.description = %q{Extracted modules from the Posterous Blog Importer. Used for conforming RSS Feeds or results from one API to another.}
15
15
  s.email = %q{signalstatic@gmail.com}
@@ -29,8 +29,8 @@ Gem::Specification.new do |s|
29
29
  "io_tools.gemspec",
30
30
  "lib/io_tools.rb",
31
31
  "lib/io_tools/helpers.rb",
32
+ "lib/io_tools/helpers/meta_weblog.rb",
32
33
  "lib/io_tools/helpers/rss_feed.rb",
33
- "lib/io_tools/helpers/xml_rpc.rb",
34
34
  "lib/io_tools/importer.rb",
35
35
  "lib/server/config.ru",
36
36
  "lib/server/importers/posterous_api_importer.rb",
@@ -70,8 +70,6 @@ Gem::Specification.new do |s|
70
70
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
71
71
  s.add_development_dependency(%q<mocha>, [">= 0"])
72
72
  s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.2"])
73
- s.add_runtime_dependency(%q<sinatra>, [">= 0"])
74
- s.add_runtime_dependency(%q<haml>, [">= 0"])
75
73
  s.add_runtime_dependency(%q<xml-simple>, [">= 0"])
76
74
  s.add_runtime_dependency(%q<feedtools>, [">= 0.2.29"])
77
75
  s.add_runtime_dependency(%q<vegas>, ["~> 0.1.2"])
@@ -79,8 +77,6 @@ Gem::Specification.new do |s|
79
77
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
80
78
  s.add_dependency(%q<mocha>, [">= 0"])
81
79
  s.add_dependency(%q<nokogiri>, [">= 1.4.2"])
82
- s.add_dependency(%q<sinatra>, [">= 0"])
83
- s.add_dependency(%q<haml>, [">= 0"])
84
80
  s.add_dependency(%q<xml-simple>, [">= 0"])
85
81
  s.add_dependency(%q<feedtools>, [">= 0.2.29"])
86
82
  s.add_dependency(%q<vegas>, ["~> 0.1.2"])
@@ -89,8 +85,6 @@ Gem::Specification.new do |s|
89
85
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
90
86
  s.add_dependency(%q<mocha>, [">= 0"])
91
87
  s.add_dependency(%q<nokogiri>, [">= 1.4.2"])
92
- s.add_dependency(%q<sinatra>, [">= 0"])
93
- s.add_dependency(%q<haml>, [">= 0"])
94
88
  s.add_dependency(%q<xml-simple>, [">= 0"])
95
89
  s.add_dependency(%q<feedtools>, [">= 0.2.29"])
96
90
  s.add_dependency(%q<vegas>, ["~> 0.1.2"])
data/lib/io_tools.rb CHANGED
@@ -1,12 +1,10 @@
1
1
  %w{rubygems ostruct xmlrpc/client nokogiri open-uri feed_tools}.each { |f| require f }
2
2
 
3
-
4
3
  require "io_tools/importer"
5
4
  require "io_tools/helpers/rss_feed"
6
- require "io_tools/helpers/xml_rpc"
5
+ require "io_tools/helpers/meta_weblog"
7
6
 
8
7
  module IoTools
9
- VERSION = '0.0.1'
10
8
  class ItemStruct < OpenStruct
11
9
  def to_json *_
12
10
  self.table.inject({}){|h,f| h[f.first] = f.last; h }.to_json
@@ -1,13 +1,13 @@
1
1
  module IoTools
2
2
  module Helpers
3
- module XmlRpc
3
+ module MetaWeblog
4
4
 
5
5
  def server
6
6
  @server ||= XMLRPC::Client.new2(api_url, nil, 300)
7
7
  end
8
8
 
9
9
  def rpc method, *args
10
- server.call("metaWeblog.#{method.to_s}", self.metaweblog_id, self.credentials[:username], self.credentials[:password], *args)
10
+ server.call("metaWeblog.#{method.to_s}", self.metaweblog_id, self.params['username'], self.params['password'], *args)
11
11
  end
12
12
 
13
13
  def recent_posts num
@@ -2,7 +2,7 @@
2
2
 
3
3
  class WordPressImporter
4
4
  include IoTools::Importer
5
- include IoTools::Helpers::XmlRpc
5
+ include IoTools::Helpers::MetaWeblog
6
6
 
7
7
  RSD_SELECTOR = 'link[rel=EditURI]'
8
8
  METAWEB_SELECTOR = 'api[name=MetaWeblog]'
@@ -12,11 +12,12 @@ class WordPressImporter
12
12
  recent_posts MAX_POSTS_TO_REQUEST
13
13
  end
14
14
 
15
- conform do
16
- set :title, entry['title']
17
- set :body, entry['description']
18
- set :display_date, entry['dateCreated'].to_time.utc
19
- set :tags, entry['mt_keywords'].split(",")
15
+ conform do |incoming, conformed|
16
+ conformed.title = incoming['title']
17
+ conformed.body = incoming['description']
18
+ conformed.display_date = incoming['dateCreated'].to_time.utc
19
+ conformed.tags = incoming['mt_keywords'].split(",")
20
+ conformed
20
21
  end
21
22
 
22
23
  # Methods below are helpers for detecting RSD for the
@@ -30,7 +31,7 @@ class WordPressImporter
30
31
  end
31
32
 
32
33
  def html
33
- @html ||= open self.import_url
34
+ @html ||= open self.params['import_url']
34
35
  end
35
36
 
36
37
  def rsd_url
data/lib/server/server.rb CHANGED
@@ -3,31 +3,29 @@
3
3
  $LOAD_PATH.unshift(File.dirname(__FILE__))
4
4
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../..', 'lib'))
5
5
 
6
- require 'io_tools'
7
- dir = File.expand_path(File.dirname(__FILE__))
8
-
9
- require dir+'/importers/posterous_feed_importer'
10
- require dir+'/importers/posterous_api_importer'
6
+ @dir = File.expand_path(File.dirname(__FILE__))
11
7
 
8
+ require 'io_tools'
12
9
 
10
+ require dir + '/importers/posterous_feed_importer'
11
+ require dir + '/importers/posterous_api_importer'
12
+ require dir + '/importers/word_press_importer'
13
13
 
14
14
  module IoTools
15
-
16
-
17
15
  class Server < Sinatra::Base
18
- dir = File.dirname(File.expand_path(__FILE__))
19
16
 
20
- set :views, "#{dir}/views"
21
- set :public, "#{dir}/public"
17
+ set :views, "#{@dir}/views"
18
+ set :public, "#{@dir}/public"
22
19
 
23
20
  get "/" do
24
21
  haml :index
25
22
  end
26
23
 
27
24
  post '/import' do
28
- klass = params.delete('service').camelize.constantize
29
- @import = klass.new(params)
30
- @posts = @import.import!
25
+ @klass = params.delete('service').camelize.constantize
26
+ @import = klass.new(params)
27
+ @posts = @import.import!
28
+
31
29
  haml :import
32
30
  end
33
31
 
@@ -22,13 +22,14 @@
22
22
  Posterous API
23
23
  %option{ :value => 'posterous_feed_importer' }
24
24
  Posterous Feed
25
+ %option{ :value => 'word_press_importer' }
26
+ WordPress MetaWeblog
25
27
 
26
28
  %form.login_info{:style => 'display:none', :id => 'posterous_api_importer', :method => "POST"}
27
29
  %p
28
30
  %label
29
31
  Email:
30
32
  %input{:name => "username", :type => 'text', :value => '',:class=>"text_field"}
31
- %br{:clear => "all"}
32
33
  %p
33
34
  %label
34
35
  Password:
@@ -38,8 +39,6 @@
38
39
  Hostname:
39
40
  %input{:name => "hostname", :type => 'text', :value => '',:class=>"text_field"}
40
41
  %input{:name => "service", :type => 'hidden', :value => 'posterous_api_importer',:class=>"text_field"}
41
-
42
-
43
42
  %p
44
43
  %input{:id => "submit_btn",:value => 'Export', :type => "submit"}
45
44
 
@@ -51,13 +50,31 @@
51
50
  Site URL:
52
51
  %input{:name => "feed_url", :type => 'text', :value => '',:class=>"text_field"}
53
52
  %input{:name => "service", :type => 'hidden', :value => 'posterous_feed_importer',:class=>"text_field"}
54
-
55
-
56
53
  %p
57
54
  %input{:id => "submit_btn",:value => 'Export', :type => "submit"}
58
55
 
59
56
  %br{:clear => "all"}
60
57
 
58
+ %form.login_info{:style => 'display:none', :id => 'word_press_importer', :method => "POST"}
59
+ %p
60
+ %label
61
+ Site URL:
62
+ %input{:name => "import_url", :type => 'text', :value => '',:class=>"text_field"}
63
+
64
+ %p
65
+ %label
66
+ Email:
67
+ %input{:name => "username", :type => 'text', :value => '',:class=>"text_field"}
68
+ %br{:clear => "all"}
69
+ %p
70
+ %label
71
+ Password:
72
+ %input{:name => "password", :type => 'password', :value => '',:class=>"text_field"}
73
+ %input{:name => "service", :type => 'hidden', :value => 'word_press_importer',:class=>"text_field"}
74
+ %p
75
+ %input{:id => "submit_btn",:value => 'Export', :type => "submit"}
76
+
77
+ %br{:clear => "all"}
61
78
 
62
79
 
63
80
  #loading{:style => 'display:none'}
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io_tools
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 3
10
- version: 0.2.3
9
+ - 5
10
+ version: 0.2.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Christopher Burnett
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-18 00:00:00 -07:00
18
+ date: 2010-08-27 00:00:00 -07:00
19
19
  default_executable: io-server
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -65,7 +65,7 @@ dependencies:
65
65
  type: :runtime
66
66
  version_requirements: *id003
67
67
  - !ruby/object:Gem::Dependency
68
- name: sinatra
68
+ name: xml-simple
69
69
  prerelease: false
70
70
  requirement: &id004 !ruby/object:Gem::Requirement
71
71
  none: false
@@ -78,38 +78,10 @@ dependencies:
78
78
  version: "0"
79
79
  type: :runtime
80
80
  version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
82
- name: haml
83
- prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
85
- none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- hash: 3
90
- segments:
91
- - 0
92
- version: "0"
93
- type: :runtime
94
- version_requirements: *id005
95
- - !ruby/object:Gem::Dependency
96
- name: xml-simple
97
- prerelease: false
98
- requirement: &id006 !ruby/object:Gem::Requirement
99
- none: false
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- hash: 3
104
- segments:
105
- - 0
106
- version: "0"
107
- type: :runtime
108
- version_requirements: *id006
109
81
  - !ruby/object:Gem::Dependency
110
82
  name: feedtools
111
83
  prerelease: false
112
- requirement: &id007 !ruby/object:Gem::Requirement
84
+ requirement: &id005 !ruby/object:Gem::Requirement
113
85
  none: false
114
86
  requirements:
115
87
  - - ">="
@@ -121,11 +93,11 @@ dependencies:
121
93
  - 29
122
94
  version: 0.2.29
123
95
  type: :runtime
124
- version_requirements: *id007
96
+ version_requirements: *id005
125
97
  - !ruby/object:Gem::Dependency
126
98
  name: vegas
127
99
  prerelease: false
128
- requirement: &id008 !ruby/object:Gem::Requirement
100
+ requirement: &id006 !ruby/object:Gem::Requirement
129
101
  none: false
130
102
  requirements:
131
103
  - - ~>
@@ -137,7 +109,7 @@ dependencies:
137
109
  - 2
138
110
  version: 0.1.2
139
111
  type: :runtime
140
- version_requirements: *id008
112
+ version_requirements: *id006
141
113
  description: Extracted modules from the Posterous Blog Importer. Used for conforming RSS Feeds or results from one API to another.
142
114
  email: signalstatic@gmail.com
143
115
  executables:
@@ -158,8 +130,8 @@ files:
158
130
  - io_tools.gemspec
159
131
  - lib/io_tools.rb
160
132
  - lib/io_tools/helpers.rb
133
+ - lib/io_tools/helpers/meta_weblog.rb
161
134
  - lib/io_tools/helpers/rss_feed.rb
162
- - lib/io_tools/helpers/xml_rpc.rb
163
135
  - lib/io_tools/importer.rb
164
136
  - lib/server/config.ru
165
137
  - lib/server/importers/posterous_api_importer.rb