issues 0.0.1 → 0.0.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.
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/bin/issues CHANGED
@@ -39,7 +39,7 @@ desc 'List of Issues'
39
39
  command :list do |c|
40
40
  c.desc 'mileston '
41
41
  c.arg_name 'milestone'
42
- c.switch [:m, :milestone]
42
+ c.flag [:m, :milestone]
43
43
 
44
44
  c.desc 'assignee'
45
45
  c.arg_name 'username'
@@ -66,17 +66,16 @@ command :milestones do |c|
66
66
  c.flag [:s, :state]
67
67
 
68
68
  c.action do |global_options,options,args|
69
- p '[TODO] Implement Milestones List'
69
+ Issues::Repo.find(global_options[:repo]).milestones.each do |milestone|
70
+ p milestone
71
+ end
70
72
  end
71
73
  end
72
74
 
73
75
 
74
76
  pre do |global,command,options,args|
75
- # Pre logic here
76
- # Return true to proceed; false to abort and not call the
77
- # chosen command
78
- # Use skips_pre before a command to skip this block
79
- # on that command only
77
+ Issues::Github.username = global[:username]
78
+ Issues::Github.password = global[:password]
80
79
  true
81
80
  end
82
81
 
@@ -11,8 +11,11 @@ spec = Gem::Specification.new do |s|
11
11
  s.extra_rdoc_files = ['README.rdoc','issues.rdoc']
12
12
  s.rdoc_options << '--title' << 'issues' << '--main' << 'README.rdoc' << '-ri'
13
13
  s.bindir = 'bin'
14
- s.add_development_dependency('rake')
15
- s.add_development_dependency('rdoc')
14
+ s.add_dependency 'virtus', ['>=0.4.0']
15
+ s.add_dependency 'faraday', ['>=0.7.6']
16
+ s.add_dependency 'json', ['>=1.6.5']
17
+ s.add_development_dependency 'rake', ['>=0.9.2.2']
18
+ s.add_development_dependency 'rdoc', ['>=3.12']
16
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
20
  s.files = `git ls-files`.split("\n")
18
21
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -1,4 +1,13 @@
1
+ require 'virtus'
2
+ require 'faraday'
3
+ require 'json'
4
+ require 'singleton'
5
+
1
6
  require 'issues/version'
7
+ require 'issues/github'
8
+ require 'issues/user'
9
+ require 'issues/repo'
10
+ require 'issues/milestone'
2
11
 
3
12
  module Issues
4
13
 
@@ -0,0 +1,13 @@
1
+ require 'issues/github/connection'
2
+ require 'issues/github/resource'
3
+
4
+ module Issues
5
+ module Github
6
+ extend self
7
+ attr_accessor :username, :password
8
+
9
+ def connection
10
+ Github::Connection.instance.connection
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Issues
2
+ module Github
3
+ class Connection
4
+ include Singleton
5
+
6
+ def connection
7
+ @conn ||= Faraday.new(:url => "https://api.github.com")
8
+ @conn.basic_auth(Github.username, Github.password) unless Github.password.nil?
9
+ @conn
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ module Issues
2
+ module Github
3
+ module Resource
4
+ def self.included(base)
5
+ base.extend ClassMethods
6
+ end
7
+
8
+ module ClassMethods
9
+ def github
10
+ Github.connection
11
+ end
12
+ end
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,20 @@
1
+ module Issues
2
+ class Milestone
3
+ include Virtus
4
+ include Github::Resource
5
+
6
+ attribute :number, Integer
7
+ attribute :title, String
8
+ attribute :repo, Repo
9
+
10
+ def self.all(repo)
11
+ body = github.get("/repos/#{repo.handle}/milestones").body
12
+ JSON.parse(body).map {|attributes| new(attributes.merge(repo: repo)) }
13
+ end
14
+
15
+ def to_s
16
+ "##{number} - #{title} (#{repo.handle})"
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ module Issues
2
+ class Repo
3
+ include Virtus
4
+
5
+ attribute :name, String
6
+ attribute :owner, User
7
+
8
+ def self.find(handle)
9
+ login, name = handle.split('/')
10
+ new(name: name, owner: { login: login })
11
+ end
12
+
13
+ def milestones
14
+ Milestone.all(self)
15
+ end
16
+
17
+ def handle
18
+ "#{owner.login}/#{name}"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,7 @@
1
+ module Issues
2
+ class User
3
+ include Virtus
4
+ attribute :login, String
5
+
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module Issues
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: issues
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,30 +9,63 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-22 00:00:00.000000000 Z
12
+ date: 2012-03-24 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: virtus
16
+ requirement: &70245939337220 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.4.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70245939337220
25
+ - !ruby/object:Gem::Dependency
26
+ name: faraday
27
+ requirement: &70245939336240 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.7.6
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70245939336240
36
+ - !ruby/object:Gem::Dependency
37
+ name: json
38
+ requirement: &70245939335400 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 1.6.5
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70245939335400
14
47
  - !ruby/object:Gem::Dependency
15
48
  name: rake
16
- requirement: &70346535924580 !ruby/object:Gem::Requirement
49
+ requirement: &70245939334560 !ruby/object:Gem::Requirement
17
50
  none: false
18
51
  requirements:
19
52
  - - ! '>='
20
53
  - !ruby/object:Gem::Version
21
- version: '0'
54
+ version: 0.9.2.2
22
55
  type: :development
23
56
  prerelease: false
24
- version_requirements: *70346535924580
57
+ version_requirements: *70245939334560
25
58
  - !ruby/object:Gem::Dependency
26
59
  name: rdoc
27
- requirement: &70346535924100 !ruby/object:Gem::Requirement
60
+ requirement: &70245939333560 !ruby/object:Gem::Requirement
28
61
  none: false
29
62
  requirements:
30
63
  - - ! '>='
31
64
  - !ruby/object:Gem::Version
32
- version: '0'
65
+ version: '3.12'
33
66
  type: :development
34
67
  prerelease: false
35
- version_requirements: *70346535924100
68
+ version_requirements: *70245939333560
36
69
  description:
37
70
  email: marcin.ciunelis@gmail.com
38
71
  executables:
@@ -42,6 +75,7 @@ extra_rdoc_files:
42
75
  - README.rdoc
43
76
  - issues.rdoc
44
77
  files:
78
+ - .gitignore
45
79
  - Gemfile
46
80
  - LICENSE
47
81
  - README.rdoc
@@ -50,6 +84,12 @@ files:
50
84
  - issues.gemspec
51
85
  - issues.rdoc
52
86
  - lib/issues.rb
87
+ - lib/issues/github.rb
88
+ - lib/issues/github/connection.rb
89
+ - lib/issues/github/resource.rb
90
+ - lib/issues/milestone.rb
91
+ - lib/issues/repo.rb
92
+ - lib/issues/user.rb
53
93
  - lib/issues/version.rb
54
94
  - test/tc_nothing.rb
55
95
  homepage: https://github.com/martinciu/issues