hsume2-rumblr 0.0.1

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.
@@ -0,0 +1,4 @@
1
+ == 0.0.1 2009-06-06
2
+
3
+ * 1 major enhancement:
4
+ * Initial release
@@ -0,0 +1,14 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.rdoc
4
+ Rakefile
5
+ lib/rumblr.rb
6
+ rails_generators/rumblr/USAGE
7
+ rails_generators/rumblr/rumblr_generator.rb
8
+ rails_generators/rumblr/templates/post.rb
9
+ rumblr.gemspec
10
+ script/console
11
+ script/destroy
12
+ script/generate
13
+ test/test_helper.rb
14
+ test/test_rumblr.rb
@@ -0,0 +1,61 @@
1
+ = rumblr
2
+
3
+ * http://github.com/hsume2/rumblr
4
+
5
+ == Introduction
6
+
7
+ Makes a tumblr tumblelog act like an +ActiveResource+.
8
+
9
+ === Features/Problems:
10
+
11
+ * Only supports /api/read (without parameters) at http://www.rumblr.com/api#api_read
12
+
13
+ === Install
14
+
15
+ gem sources -a http://gems.github.com
16
+ sudo gem install hsume2-rumblr
17
+
18
+ === Usage
19
+
20
+ After installing the gem, run
21
+
22
+ script/generate rumblr RumblrName
23
+
24
+ in the rails root, where +RumblrName+ is the fully-qualified url to the tumblelog.
25
+ Then in your app you can call <tt>Rumblr::Post.all</tt> just like you would an +ActiveRecord+.
26
+
27
+ For example,
28
+
29
+ recent = Rumblr::Post.all
30
+ most_recent = recent.first
31
+
32
+ Then we can do
33
+ most_recent.url
34
+ most_recent.regular_body
35
+
36
+ most_recent.post_type # instead of most_recent.type to avoid conflict with Rails
37
+
38
+ === License
39
+
40
+ (The MIT License)
41
+
42
+ Copyright (c) 2009 Henry Hsu
43
+
44
+ Permission is hereby granted, free of charge, to any person obtaining
45
+ a copy of this software and associated documentation files (the
46
+ 'Software'), to deal in the Software without restriction, including
47
+ without limitation the rights to use, copy, modify, merge, publish,
48
+ distribute, sublicense, and/or sell copies of the Software, and to
49
+ permit persons to whom the Software is furnished to do so, subject to
50
+ the following conditions:
51
+
52
+ The above copyright notice and this permission notice shall be
53
+ included in all copies or substantial portions of the Software.
54
+
55
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
56
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
57
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
58
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
59
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
60
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
61
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,29 @@
1
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
2
+ %w[rake rake/clean fileutils newgem rubigen].each { |f| require f }
3
+ require File.dirname(__FILE__) + '/lib/rumblr'
4
+
5
+ # Generate all the Rake tasks
6
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
7
+ $hoe = Hoe.new('rumblr', Rumblr::VERSION) do |p|
8
+ p.developer('Henry Hsu', 'henry@qlane.com')
9
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
10
+ # p.post_install_message = 'PostInstall.txt'
11
+ p.rubyforge_name = p.name
12
+ p.extra_deps = [
13
+ ['activerecord','>= 0']
14
+ ]
15
+ p.extra_dev_deps = [
16
+ ['newgem', ">= #{::Newgem::VERSION}"]
17
+ ]
18
+
19
+ p.summary = 'Makes a tumblr tumblelog act like an ActiveResource.'
20
+ p.description = 'Makes a tumblr tumblelog act like an ActiveResource.'
21
+
22
+ p.clean_globs |= %w[**/.DS_Store tmp *.log]
23
+ path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
24
+ p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
25
+ p.rsync_args = '-av --delete --ignore-errors'
26
+ end
27
+
28
+ require 'newgem/tasks' # load /tasks/*.rake
29
+ Dir['tasks/**/*.rake'].each { |t| load t }
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module Rumblr
5
+ VERSION = '0.0.1'
6
+ end
File without changes
@@ -0,0 +1,10 @@
1
+ class RumblrGenerator < Rails::Generator::NamedBase
2
+ def manifest
3
+ record do |m|
4
+ m.directory 'app/models/rumblr'
5
+ m.template 'post.rb', 'app/models/rumblr/post.rb', :assigns => {:tumblelog => @name}
6
+ m.directory 'lib/tasks'
7
+ # m.file 'rumblr.rake', 'lib/tasks/rumblr.rake'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,34 @@
1
+ module Rumblr
2
+ class Post < ActiveResource::Base
3
+ self.site = "<%= tumblelog %>"
4
+ self.collection_name = 'api'
5
+
6
+ class << self
7
+ def custom_method_collection_url(method_name, options = {})
8
+ prefix_options, query_options = split_options(options)
9
+ "#{prefix(prefix_options)}#{collection_name}/#{method_name}#{query_string(query_options)}"
10
+ end
11
+
12
+ def instantiate_collection(collection, prefix_options = {})
13
+ collection.collect { |record| instantiate_record(record, prefix_options) }
14
+ end
15
+
16
+ def all
17
+ begin
18
+ instantiate_collection(get(:read)["posts"]["post"])
19
+ rescue Exception => e
20
+ []
21
+ end
22
+ end
23
+
24
+ def instantiate_record(record, prefix_options = {})
25
+ type = record["type"]
26
+ record.delete("type")
27
+ record["post_type"] = type
28
+ Rumblr::Post.new(record) do |resource|
29
+ resource.id = record["id"]
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,40 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{rumblr}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Henry Hsu"]
9
+ s.date = %q{2009-06-06}
10
+ s.description = %q{Makes a tumblr tumblelog act like an ActiveResource.}
11
+ s.email = ["henry@qlane.com"]
12
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.rdoc"]
13
+ s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "lib/rumblr.rb", "rails_generators/rumblr/USAGE", "rails_generators/rumblr/rumblr_generator.rb", "rails_generators/rumblr/templates/post.rb", "rumblr.gemspec", "script/console", "script/destroy", "script/generate", "test/test_helper.rb", "test/test_rumblr.rb"]
14
+ s.homepage = %q{http://github.com/hsume2/rumblr}
15
+ s.rdoc_options = ["--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{rumblr}
18
+ s.rubygems_version = %q{1.3.4}
19
+ s.summary = %q{Makes a tumblr tumblelog act like an ActiveResource.}
20
+ s.test_files = ["test/test_helper.rb", "test/test_rumblr.rb"]
21
+
22
+ if s.respond_to? :specification_version then
23
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
+ s.specification_version = 3
25
+
26
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ s.add_runtime_dependency(%q<activerecord>, [">= 0"])
28
+ s.add_development_dependency(%q<newgem>, [">= 1.4.1"])
29
+ s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
30
+ else
31
+ s.add_dependency(%q<activerecord>, [">= 0"])
32
+ s.add_dependency(%q<newgem>, [">= 1.4.1"])
33
+ s.add_dependency(%q<hoe>, [">= 1.8.0"])
34
+ end
35
+ else
36
+ s.add_dependency(%q<activerecord>, [">= 0"])
37
+ s.add_dependency(%q<newgem>, [">= 1.4.1"])
38
+ s.add_dependency(%q<hoe>, [">= 1.8.0"])
39
+ end
40
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
+
5
+ libs = " -r irb/completion"
6
+ # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
+ # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
+ libs << " -r #{File.dirname(__FILE__) + '/../lib/rumblr.rb'}"
9
+ puts "Loading rumblr gem"
10
+ exec "#{irb} #{libs} --simple-prompt"
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/destroy'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Destroy.new.run(ARGV)
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/generate'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Generate.new.run(ARGV)
@@ -0,0 +1,3 @@
1
+ require 'stringio'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/rumblr'
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestRumblr < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def test_truth
9
+ assert true
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hsume2-rumblr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Henry Hsu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-06 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activerecord
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:
25
+ - !ruby/object:Gem::Dependency
26
+ name: newgem
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.4.1
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: hoe
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.0
44
+ version:
45
+ description: Makes a tumblr tumblelog act like an ActiveResource.
46
+ email:
47
+ - henry@qlane.com
48
+ executables: []
49
+
50
+ extensions: []
51
+
52
+ extra_rdoc_files:
53
+ - History.txt
54
+ - Manifest.txt
55
+ - README.rdoc
56
+ files:
57
+ - History.txt
58
+ - Manifest.txt
59
+ - README.rdoc
60
+ - Rakefile
61
+ - lib/rumblr.rb
62
+ - rails_generators/rumblr/USAGE
63
+ - rails_generators/rumblr/rumblr_generator.rb
64
+ - rails_generators/rumblr/templates/post.rb
65
+ - rumblr.gemspec
66
+ - script/console
67
+ - script/destroy
68
+ - script/generate
69
+ - test/test_helper.rb
70
+ - test/test_rumblr.rb
71
+ has_rdoc: false
72
+ homepage: http://github.com/hsume2/rumblr
73
+ post_install_message:
74
+ rdoc_options:
75
+ - --main
76
+ - README.rdoc
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ version:
91
+ requirements: []
92
+
93
+ rubyforge_project: rumblr
94
+ rubygems_version: 1.2.0
95
+ signing_key:
96
+ specification_version: 3
97
+ summary: Makes a tumblr tumblelog act like an ActiveResource.
98
+ test_files:
99
+ - test/test_helper.rb
100
+ - test/test_rumblr.rb