feedcellar-test 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 44864b502a6e4c37ef283541b945300de0d186a7
4
+ data.tar.gz: 640c8dd70f585bf16967301ca83ed456794ba356
5
+ SHA512:
6
+ metadata.gz: 468471fb84c2f856da845a6bef533fed175cd93a3d78b1d2c66b6e1cdadbf7ac51b509a282db2137cb12cef1322691c071d0681415c9034599ea800d5e23c159
7
+ data.tar.gz: 8d0f47609687bd9a14c684a4d7067b59e96b3da419e78364c04298ccc0c8a0bec9cac39a5fd752de3fe17add555e94d2967a2a2411dec82506ffe83b9093a296
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in feedcellar-test.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # feedcellar-test
2
+
3
+ A testing tool for [Feedcellar](http://myokoym.net/feedcellar).
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'feedcellar-test'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install feedcellar-test
20
+
21
+ ## Usage
22
+
23
+ Start server for sample RSS feed (http://localhost:20075/feed.xml):
24
+
25
+ $ feedcellar-test server start
26
+
27
+ Or
28
+
29
+ ```ruby
30
+ require "feedcellar/test/command"
31
+
32
+ server = Feedcellar::Test::Server.new
33
+ server.start
34
+ # use http://localhost:20075/feed.xml
35
+ server.stop
36
+ ```
37
+
38
+ ## Development
39
+
40
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
41
+
42
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
43
+
44
+ ## Contributing
45
+
46
+ Bug reports and pull requests are welcome on GitHub at https://github.com/feedcellar/feedcellar-test.
47
+
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "feedcellar/test"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "feedcellar/test/command"
4
+
5
+ Feedcellar::Test::Command.start
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'feedcellar/test/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "feedcellar-test"
8
+ spec.version = Feedcellar::Test::VERSION
9
+ spec.authors = ["Masafumi Yokoyama"]
10
+ spec.email = ["myokoym@gmail.com"]
11
+
12
+ spec.summary = %q{A tesing tools for Feedcellar.}
13
+ spec.description = spec.summary
14
+ spec.homepage = "https://github.com/feedcellar/feedcellar-test"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency "thor"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.11"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ end
@@ -0,0 +1,65 @@
1
+ require "thor"
2
+ require "webrick"
3
+ require "tmpdir"
4
+ require "feedcellar/test/config"
5
+ require "feedcellar/test/feed"
6
+
7
+ module Feedcellar
8
+ module Test
9
+ class Server < Thor
10
+ def initialize(*args)
11
+ super
12
+ @tmpdir = Dir.mktmpdir("feedcellar-test")
13
+ File.write(File.join(@tmpdir, "feed.xml"),
14
+ Feed.make)
15
+ end
16
+
17
+ desc "server start", "Start server."
18
+ def start
19
+ srv_proc = lambda do
20
+ config = {
21
+ :DocumentRoot => './',
22
+ :BindAddress => '127.0.0.1',
23
+ :Port => PORT,
24
+ }
25
+ Dir.chdir(@tmpdir) do
26
+ srv = WEBrick::HTTPServer.new(config)
27
+ trap("INT") { srv.shutdown }
28
+ srv.start
29
+ end
30
+ end
31
+
32
+ if File.basename($0) == "feedcellar-test"
33
+ srv_proc.call
34
+ else
35
+ if @server && @server.alive?
36
+ $stderr.puts("Server is still running.")
37
+ return false
38
+ end
39
+ @server = Thread.start(&srv_proc)
40
+ end
41
+ end
42
+
43
+ desc "server stop", "Stop server."
44
+ def stop
45
+ if @server && @server.alive?
46
+ @server.kill
47
+ else
48
+ $stderr.puts("Server is not run.")
49
+ return false
50
+ end
51
+ end
52
+ end
53
+
54
+ class Command < Thor
55
+ map "-v" => :version
56
+
57
+ register(Server, "server", "server start/stop", "server commands.")
58
+
59
+ desc "version", "Show version number."
60
+ def version
61
+ puts Feedcellar::VERSION
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,6 @@
1
+ module Feedcellar
2
+ module Test
3
+ PORT = 20075
4
+ BASE_URL = "http://localhost:#{PORT}"
5
+ end
6
+ end
@@ -0,0 +1,32 @@
1
+ require "rss"
2
+ require "feedcellar/test/config"
3
+
4
+ module Feedcellar
5
+ module Test
6
+ class Feed
7
+ def self.make
8
+ rss = RSS::Maker.make("2.0") do |maker|
9
+ maker.channel.about = File.join(BASE_URL, "feed.xml")
10
+ maker.channel.title = "Feedcellar Test"
11
+ maker.channel.description = "Test Site"
12
+ maker.channel.link = BASE_URL
13
+
14
+ 1.upto(3) do |i|
15
+ item = maker.items.new_item
16
+ item.link = File.join(BASE_URL, "article#{i}.html")
17
+ item.title = "Sample Article #{i}"
18
+ item.description = <<-DESCRIPTION
19
+ Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, `and what is the use of a book,' thought Alice `without pictures or conversation?'
20
+
21
+ So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.
22
+ DESCRIPTION
23
+ item.date = Time.parse("2016/2/#{i} 00:00")
24
+ end
25
+ end
26
+
27
+ rss
28
+ end
29
+ end
30
+ end
31
+ end
32
+
@@ -0,0 +1,5 @@
1
+ module Feedcellar
2
+ module Test
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,2 @@
1
+ require "feedcellar/test/feed"
2
+ require "feedcellar/test/version"
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: feedcellar-test
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Masafumi Yokoyama
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-02-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.11'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.11'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ description: A tesing tools for Feedcellar.
56
+ email:
57
+ - myokoym@gmail.com
58
+ executables:
59
+ - feedcellar-test
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - Gemfile
65
+ - README.md
66
+ - Rakefile
67
+ - bin/console
68
+ - bin/setup
69
+ - exe/feedcellar-test
70
+ - feedcellar-test.gemspec
71
+ - lib/feedcellar/test.rb
72
+ - lib/feedcellar/test/command.rb
73
+ - lib/feedcellar/test/config.rb
74
+ - lib/feedcellar/test/feed.rb
75
+ - lib/feedcellar/test/version.rb
76
+ homepage: https://github.com/feedcellar/feedcellar-test
77
+ licenses: []
78
+ metadata: {}
79
+ post_install_message:
80
+ rdoc_options: []
81
+ require_paths:
82
+ - lib
83
+ required_ruby_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ required_rubygems_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ requirements: []
94
+ rubyforge_project:
95
+ rubygems_version: 2.5.1
96
+ signing_key:
97
+ specification_version: 4
98
+ summary: A tesing tools for Feedcellar.
99
+ test_files: []
100
+ has_rdoc: