giexp 0.1.0 → 0.1.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.
data/bin/giexp CHANGED
@@ -41,6 +41,10 @@ begin
41
41
  end
42
42
  end
43
43
 
44
+ opts.on("-r REPOSITORY", "--repository REPOSITORY", "Repository name") do |x|
45
+ options[:repository] = x
46
+ end
47
+
44
48
  opts.on("-o ORGANIZATION", "--organization ORGANIZATION", "Organization name") do |x|
45
49
  options[:organization] = x
46
50
  end
@@ -56,12 +60,9 @@ begin
56
60
 
57
61
  opts.parse!
58
62
 
59
- # if ARGV.size >= 1
60
- # options[:repository] = ARGV.shift
61
- # else
62
- # options[:all] = true
63
- # end
64
- options[:all] = true
63
+ if options.key?(:repository)
64
+ options[:all] = true
65
+ end
65
66
 
66
67
  if options[:require_password]
67
68
  options[:password] = input_password("password: ")
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
4
4
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
5
5
 
6
6
  s.name = 'giexp'
7
- s.version = '0.1.0'
8
- s.date = '2012-03-12'
7
+ s.version = '0.1.1'
8
+ s.date = '2012-03-19'
9
9
 
10
10
  s.summary = "a tool to export issues on github"
11
11
  s.description = "a tool to export issues on github"
@@ -1,4 +1,4 @@
1
1
  module Giexp
2
- VERSION = '0.1.0' unless defined?(Giexp::VERSION)
2
+ VERSION = '0.1.1' unless defined?(Giexp::VERSION)
3
3
 
4
4
  end
@@ -16,6 +16,17 @@ module Giexp
16
16
  end
17
17
  end
18
18
 
19
+ def repository(params)
20
+ if params.key?(:organization)
21
+ user = params[:organization]
22
+ else
23
+ user = params[:user]
24
+ end
25
+
26
+ repoName = "%s/%s" % [user, params[:repository]]
27
+ @client.repository(repoName)
28
+ end
29
+
19
30
  def issues(params)
20
31
  if params.key?(:organization)
21
32
  user = params[:organization]
@@ -23,21 +34,34 @@ module Giexp
23
34
  user = params[:user]
24
35
  end
25
36
 
26
- self.repositories(params).map { |repo|
27
- repoName = "%s/%s" % [user, repo.name]
37
+ if params.key?(:repository)
38
+ repoName = "%s/%s" % [user, params[:repository]]
39
+ repo = self.repository(params)
40
+ if repo.has_issues
41
+ repo["issues"] = self.fetch_issues(repoName)
42
+ end
43
+ repo
44
+ else
45
+ self.repositories(params).map { |repo|
46
+ repoName = "%s/%s" % [user, repo.name]
28
47
 
29
- if @client.repository(repoName).has_issues
30
- issues = []
31
- ['open', 'closed'].each { |status|
32
- issues.concat(@client.issues(repoName, {:status => status}))
33
- }
34
- repo["issues"] = issues
48
+ if repo.has_issues
49
+ repo["issues"] = self.fetch_issues(repoName)
50
+ end
35
51
  repo
36
- else
37
- repo
38
- end
52
+ }
53
+ end
54
+
55
+ end
56
+
57
+ def fetch_issues(repoName)
58
+ issues = []
59
+ ['open', 'closed'].each { |status|
60
+ issues.concat(@client.issues(repoName, {:status => status}))
39
61
  }
62
+ issues
40
63
  end
64
+ protected :fetch_issues
41
65
 
42
66
  def authenticated?
43
67
  @client.authenticated?
@@ -7,13 +7,9 @@ module Giexp
7
7
  end
8
8
 
9
9
  def start(options = {})
10
- if options[:all]
11
- require 'pp'
12
- issues = @client.issues(options)
13
- pp issues
14
- else
15
- raise "Not implement"
16
- end
10
+ require 'pp'
11
+ issues = @client.issues(options)
12
+ pp issues
17
13
  end
18
14
  end
19
15
  end
@@ -1,11 +1,11 @@
1
1
  require 'helper'
2
- require 'giexp'
2
+ require 'giexp/run'
3
3
 
4
4
  describe Giexp do
5
5
  describe "with a issues command" do
6
6
  it "should not raise an error" do
7
7
  lambda {
8
- Giexp.initialize({:login => "octocat", :password => "passpass"})
8
+ Giexp::Run.new({:login => "octocat", :password => "passpass"})
9
9
  }.should_not raise_error
10
10
  end
11
11
  end
@@ -14,9 +14,6 @@ describe Giexp::Client do
14
14
  stub_get("/users/octocat/repos").
15
15
  to_return(:body => fixture("repos_user.json"))
16
16
 
17
- stub_get("/repos/octocat/DummyRepo").
18
- to_return(:body => fixture("repo.json"))
19
-
20
17
  stub_get("/repos/octocat/DummyRepo/issues?status=open").
21
18
  to_return(:body => fixture("issues_open.json"))
22
19
 
@@ -35,9 +32,6 @@ describe Giexp::Client do
35
32
  stub_get("/orgs/iroha/repos").
36
33
  to_return(:body => fixture("repos_org.json"))
37
34
 
38
- stub_get("/repos/iroha/DummyRepo").
39
- to_return(:body => fixture("repo.json"))
40
-
41
35
  stub_get("/repos/iroha/DummyRepo/issues?status=open").
42
36
  to_return(:body => fixture("issues_open.json"))
43
37
 
@@ -51,6 +45,42 @@ describe Giexp::Client do
51
45
  end
52
46
  end
53
47
 
48
+ context "with a user name and the specified repository" do
49
+ it "should return user's repository" do
50
+ stub_get("/repos/octocat/DummyRepo").
51
+ to_return(:body => fixture("repo.json"))
52
+
53
+ stub_get("/repos/octocat/DummyRepo/issues?status=open").
54
+ to_return(:body => fixture("issues_open.json"))
55
+
56
+ stub_get("/repos/octocat/DummyRepo/issues?status=closed").
57
+ to_return(:body => fixture("issues_close.json"))
58
+
59
+ issues = @client.issues(:user => "octocat", :repository => "DummyRepo")
60
+ issues.name.should == "DummyRepo"
61
+ issues.issues.should have(4).items
62
+ issues.issues.first.number == "1348"
63
+ end
64
+ end
65
+
66
+ context "with an organization name and the specified repository" do
67
+ it "should return organization's repository" do
68
+ stub_get("/repos/iroha/DummyRepo").
69
+ to_return(:body => fixture("repo.json"))
70
+
71
+ stub_get("/repos/iroha/DummyRepo/issues?status=open").
72
+ to_return(:body => fixture("issues_open.json"))
73
+
74
+ stub_get("/repos/iroha/DummyRepo/issues?status=closed").
75
+ to_return(:body => fixture("issues_close.json"))
76
+
77
+ issues = @client.issues(:organization => "iroha", :repository => "DummyRepo")
78
+ issues.name.should == "DummyRepo"
79
+ issues.issues.should have(4).items
80
+ issues.issues.first.number == "1348"
81
+ end
82
+ end
83
+
54
84
  end
55
85
 
56
86
  end
@@ -18,7 +18,7 @@ describe Giexp::Client do
18
18
  end
19
19
  end
20
20
 
21
- context "with a organization name" do
21
+ context "with an organization name" do
22
22
  it "should return organization's repositories" do
23
23
  stub_get("/orgs/iroha/repos").
24
24
  to_return(:body => fixture("repos_org.json"))
@@ -30,4 +30,24 @@ describe Giexp::Client do
30
30
 
31
31
  end
32
32
 
33
+ describe ".repository" do
34
+ context "with a user name" do
35
+ it "should return user's repository" do
36
+ stub_get("/repos/octocat/DummyRepo").
37
+ to_return(:body => fixture("repo.json"))
38
+ repository = @client.repository(:user => "octocat", :repository => "DummyRepo")
39
+ repository.name.should == "DummyRepo"
40
+ end
41
+ end
42
+
43
+ context "with an organization name" do
44
+ it "should return organization's repository" do
45
+ stub_get("/repos/iroha/DummyRepo").
46
+ to_return(:body => fixture("repo.json"))
47
+ repository = @client.repository(:organization => "iroha", :repository => "DummyRepo")
48
+ repository.name.should == "DummyRepo"
49
+ end
50
+ end
51
+ end
52
+
33
53
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: giexp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-12 00:00:00.000000000 Z
12
+ date: 2012-03-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70250251566960 !ruby/object:Gem::Requirement
16
+ requirement: &70308036444540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.8.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70250251566960
24
+ version_requirements: *70308036444540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70250251564800 !ruby/object:Gem::Requirement
27
+ requirement: &70308036442380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.9'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70250251564800
35
+ version_requirements: *70308036442380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: octokit
38
- requirement: &70250251564140 !ruby/object:Gem::Requirement
38
+ requirement: &70308036441720 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70250251564140
46
+ version_requirements: *70308036441720
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: webmock
49
- requirement: &70250251563140 !ruby/object:Gem::Requirement
49
+ requirement: &70308036440720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 1.8.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70250251563140
57
+ version_requirements: *70308036440720
58
58
  description: a tool to export issues on github
59
59
  email: potix2@gmail.com
60
60
  executables: