caperoma 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91c44fdb8dc7191b9a9cfeb915570ecbb1ac4025
4
- data.tar.gz: ee078da6fc9a184709ce19734e2ef7e0ac9b0f41
3
+ metadata.gz: d72c64e6ffa869310d552b75afc267f0e3cdeb24
4
+ data.tar.gz: 1d4b90b821373516c202499febde36b2a10e44cf
5
5
  SHA512:
6
- metadata.gz: 385d85173901334f61c945008596ce2848abf9bbbad95769759dc8789cd10ffabc6c4e2d790a2dbafed6ad5f2e40766d92c513b6789ab33c6886f13a3eef0ee8
7
- data.tar.gz: a0a980d47200b4530d12b41c9b53f346514bb59fee05fb0590e989a5236774f7dea50706040c5f0c771c6631afb35e2e70261f676f8b335d351e61ef37b1cb64
6
+ metadata.gz: 64e94f6d47bcca0dbaa4ba54ae249455193377fa08f8f07e8935e930ba9425bb76d1b2a4c12f998c91a27ac3e087f1850e99c8a69b102427a9330f9a034c0db0
7
+ data.tar.gz: cac0ae435cc34c0fcefa5fa9477325b8021e8b84d698fd48111000ee970b937087ddc8e9c2c1990b17ca1c41e62961d50cd6b411fb4a248ac19846eb17f804f0
data/Gemfile CHANGED
@@ -1,14 +1,16 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
1
+ source 'http://rubygems.org'
2
+
3
+ # Runtime dependencies
4
+ # gem 'activesupport'
5
+ gem 'jira-ruby', :require => 'jira'
5
6
 
6
7
  # Add dependencies to develop your gem here.
7
8
  # Include everything needed to run rake, tests, features, etc.
8
9
  group :development do
9
- gem "shoulda", ">= 0"
10
- gem "rdoc", "~> 3.12"
11
- gem "bundler", "~> 1.0"
12
- gem "jeweler", "~> 2.0.1"
13
- gem "simplecov", ">= 0"
10
+ gem 'shoulda', '>= 0'
11
+ gem 'rdoc', '~> 3.12'
12
+ gem 'bundler', '~> 1.0'
13
+ gem 'jeweler', '~> 2.0.1'
14
+ gem 'simplecov', '>= 0'
15
+ gem 'rspec'
14
16
  end
@@ -11,6 +11,7 @@ GEM
11
11
  builder (3.2.2)
12
12
  descendants_tracker (0.0.4)
13
13
  thread_safe (~> 0.3, >= 0.3.1)
14
+ diff-lcs (1.2.5)
14
15
  docile (1.1.5)
15
16
  faraday (0.9.0)
16
17
  multipart-post (>= 1.2, < 3)
@@ -35,6 +36,9 @@ GEM
35
36
  nokogiri (>= 1.5.10)
36
37
  rake
37
38
  rdoc
39
+ jira-ruby (0.1.10)
40
+ activesupport
41
+ oauth
38
42
  json (1.8.1)
39
43
  jwt (1.0.0)
40
44
  mini_portile (0.6.0)
@@ -44,6 +48,7 @@ GEM
44
48
  multipart-post (2.0.0)
45
49
  nokogiri (1.6.2.1)
46
50
  mini_portile (= 0.6.0)
51
+ oauth (0.4.7)
47
52
  oauth2 (1.0.0)
48
53
  faraday (>= 0.8, < 0.10)
49
54
  jwt (~> 1.0)
@@ -54,6 +59,18 @@ GEM
54
59
  rake (10.3.2)
55
60
  rdoc (3.12.2)
56
61
  json (~> 1.4)
62
+ rspec (3.0.0)
63
+ rspec-core (~> 3.0.0)
64
+ rspec-expectations (~> 3.0.0)
65
+ rspec-mocks (~> 3.0.0)
66
+ rspec-core (3.0.2)
67
+ rspec-support (~> 3.0.0)
68
+ rspec-expectations (3.0.2)
69
+ diff-lcs (>= 1.2.0, < 2.0)
70
+ rspec-support (~> 3.0.0)
71
+ rspec-mocks (3.0.2)
72
+ rspec-support (~> 3.0.0)
73
+ rspec-support (3.0.2)
57
74
  shoulda (3.5.0)
58
75
  shoulda-context (~> 1.0, >= 1.0.1)
59
76
  shoulda-matchers (>= 1.4.1, < 3.0)
@@ -75,6 +92,8 @@ PLATFORMS
75
92
  DEPENDENCIES
76
93
  bundler (~> 1.0)
77
94
  jeweler (~> 2.0.1)
95
+ jira-ruby
78
96
  rdoc (~> 3.12)
97
+ rspec
79
98
  shoulda
80
99
  simplecov
@@ -1,9 +1,16 @@
1
1
  = caperoma
2
2
 
3
- Description goes here.
3
+ Install:
4
+ `sudo gem install caperoma`
5
+
6
+ Use:
7
+ ````
8
+ caperoma config --jira email@example.com password123
9
+ caperoma chore "message" "3h 20m"
10
+ ````
4
11
 
5
12
  == Contributing to caperoma
6
-
13
+
7
14
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
8
15
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
9
16
  * Fork the project.
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ begin
6
6
  Bundler.setup(:default, :development)
7
7
  rescue Bundler::BundlerError => e
8
8
  $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
9
+ $stderr.puts 'Run `bundle install` to install missing gems'
10
10
  exit e.status_code
11
11
  end
12
12
  require 'rake'
@@ -14,39 +14,39 @@ require 'rake'
14
14
  require 'jeweler'
15
15
  Jeweler::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
17
- gem.name = "caperoma"
18
- gem.homepage = "http://github.com/zoopyserg/caperoma"
19
- gem.license = "MIT"
17
+ gem.name = 'caperoma'
18
+ gem.homepage = 'http://github.com/zoopyserg/caperoma'
19
+ gem.license = 'MIT'
20
20
  gem.summary = %Q{Optimize Jira-Pivotal-Git workflow}
21
21
  gem.description = %Q{Optimize trivial things I do a lot every day: log time to Jira, start/finish tasks in Pivotal etc.}
22
- gem.email = "serge@railsmuffin.com"
23
- gem.authors = ["Serge Vinogradoff"]
22
+ gem.email = 'serge@railsmuffin.com'
23
+ gem.authors = ['Serge Vinogradoff']
24
24
  # dependencies defined in Gemfile
25
25
  gem.executables = ['caperoma']
26
26
  end
27
27
  Jeweler::RubygemsDotOrgTasks.new
28
28
 
29
- require 'rake/testtask'
30
- Rake::TestTask.new(:test) do |test|
31
- test.libs << 'lib' << 'test'
32
- test.pattern = 'test/**/test_*.rb'
33
- test.verbose = true
29
+ require 'rspec/core'
30
+ require 'rspec/core/rake_task'
31
+ RSpec::Core::RakeTask.new(:spec) do |spec|
32
+ spec.pattern = FileList['spec/**/*_spec.rb']
34
33
  end
35
34
 
36
- desc "Code coverage detail"
35
+ desc 'Code coverage detail'
37
36
  task :simplecov do
38
- ENV['COVERAGE'] = "true"
39
- Rake::Task['test'].execute
37
+ ENV['COVERAGE'] = 'true'
38
+ Rake::Task['spec'].execute
40
39
  end
41
40
 
42
- task :default => :test
41
+ task :default => :spec
43
42
 
44
43
  require 'rdoc/task'
45
44
  Rake::RDocTask.new do |rdoc|
46
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
45
+ version = File.exist?('VERSION') ? File.read('VERSION') : ''
47
46
 
48
47
  rdoc.rdoc_dir = 'rdoc'
49
48
  rdoc.title = "caperoma #{version}"
50
49
  rdoc.rdoc_files.include('README*')
51
50
  rdoc.rdoc_files.include('lib/**/*.rb')
52
51
  end
52
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.1.0
@@ -1,4 +1,18 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'caperoma'
4
- Caperoma.test(ARGV[0])
4
+
5
+ action = ARGV[0]
6
+
7
+ if action == 'chore'
8
+ # parameter is a message
9
+ # time_spent is like "3h 20m"
10
+ Caperoma.chore(ARGV)
11
+ elsif action == 'config'
12
+ Caperoma.config(ARGV)
13
+ elsif action == 'test'
14
+ Caperoma.test
15
+ else
16
+ puts 'unknown command'
17
+ end
18
+
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: caperoma 0.0.2 ruby lib
5
+ # stub: caperoma 0.1.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "caperoma"
9
- s.version = "0.0.2"
9
+ s.version = "0.1.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Serge Vinogradoff"]
14
- s.date = "2014-07-19"
14
+ s.date = "2014-07-20"
15
15
  s.description = "Optimize trivial things I do a lot every day: log time to Jira, start/finish tasks in Pivotal etc."
16
16
  s.email = "serge@railsmuffin.com"
17
17
  s.executables = ["caperoma"]
@@ -30,8 +30,13 @@ Gem::Specification.new do |s|
30
30
  "bin/caperoma",
31
31
  "caperoma.gemspec",
32
32
  "lib/caperoma.rb",
33
- "test/helper.rb",
34
- "test/test_caperoma.rb"
33
+ "lib/caperoma/credentials.rb",
34
+ "lib/caperoma/jira_client.rb",
35
+ "spec/caperoma/credentials_spec.rb",
36
+ "spec/caperoma/jira_spec.rb",
37
+ "spec/caperoma_spec.rb",
38
+ "spec/spec_helper.rb",
39
+ "spec/support/stubs.rb"
35
40
  ]
36
41
  s.homepage = "http://github.com/zoopyserg/caperoma"
37
42
  s.licenses = ["MIT"]
@@ -42,24 +47,30 @@ Gem::Specification.new do |s|
42
47
  s.specification_version = 4
43
48
 
44
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
+ s.add_runtime_dependency(%q<jira-ruby>, [">= 0"])
45
51
  s.add_development_dependency(%q<shoulda>, [">= 0"])
46
52
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
47
53
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
48
54
  s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
49
55
  s.add_development_dependency(%q<simplecov>, [">= 0"])
56
+ s.add_development_dependency(%q<rspec>, [">= 0"])
50
57
  else
58
+ s.add_dependency(%q<jira-ruby>, [">= 0"])
51
59
  s.add_dependency(%q<shoulda>, [">= 0"])
52
60
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
53
61
  s.add_dependency(%q<bundler>, ["~> 1.0"])
54
62
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
55
63
  s.add_dependency(%q<simplecov>, [">= 0"])
64
+ s.add_dependency(%q<rspec>, [">= 0"])
56
65
  end
57
66
  else
67
+ s.add_dependency(%q<jira-ruby>, [">= 0"])
58
68
  s.add_dependency(%q<shoulda>, [">= 0"])
59
69
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
60
70
  s.add_dependency(%q<bundler>, ["~> 1.0"])
61
71
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
62
72
  s.add_dependency(%q<simplecov>, [">= 0"])
73
+ s.add_dependency(%q<rspec>, [">= 0"])
63
74
  end
64
75
  end
65
76
 
@@ -1,6 +1,18 @@
1
+ require 'sdbm'
2
+
1
3
  class Caperoma
2
- def self.test(test)
4
+ def self.chore(args = [])
5
+ JiraClient.new.create_chore(args)
6
+ end
7
+
8
+ def self.config(args = [])
9
+ Credentials.write(args)
10
+ end
11
+
12
+ def self.test
3
13
  puts 'works'
4
- puts test
5
14
  end
15
+
16
+ require 'caperoma/jira_client'
17
+ require 'caperoma/credentials'
6
18
  end
@@ -0,0 +1,13 @@
1
+ class Credentials
2
+ def self.write(args)
3
+ db = SDBM.open 'jira_credentials'
4
+
5
+ db.store('email', args[2])
6
+ db.store('password', args[3])
7
+ end
8
+
9
+ def self.read
10
+ db = SDBM.open 'jira_credentials'
11
+ db.to_hash
12
+ end
13
+ end
@@ -0,0 +1,57 @@
1
+ require 'jira'
2
+
3
+ class JiraClient
4
+ def initialize
5
+ @client ||= JIRA::Client.new(credentials)
6
+ end
7
+
8
+ def create_chore(args)
9
+ # issue = client.Issue.build
10
+ # params = chore_params(args[1], args[2])
11
+ # issue.save(params)
12
+ # issue.fetch
13
+ # issue.fields['key'] # =>"RUC-1037"
14
+ end
15
+
16
+ private
17
+ def client(email, password)
18
+ JIRA::Client.new(sign_in_params)
19
+ end
20
+
21
+ def project
22
+ @client.Project.all.find{|proj| proj.name =~ /Ruck.us/ }
23
+ end
24
+
25
+ def chore_params(message, time_spent)
26
+ {
27
+ "update" => {
28
+ "worklog" => [{
29
+ "add" => {
30
+ "started" => "2011-07-05T11:05:00.000+0000",
31
+ "timeSpent" => "62m"
32
+ }
33
+ }]
34
+ },
35
+ "fields" => {
36
+ "summary"=>"test message",
37
+ "description"=>"test description",
38
+ "project"=> { "id" => "#{project.id}" },
39
+ "issuetype" => { "id"=>"9" }
40
+ }
41
+ # and it should close the issue too
42
+ }
43
+ end
44
+
45
+ def credentials
46
+ credentials = Credentials.read
47
+
48
+ {
49
+ username: credentials[:email],
50
+ password: credentials[:password],
51
+ site: 'https://cubuss.atlassian.net/',
52
+ context_path: '',
53
+ auth_type: :basic,
54
+ use_ssl: true
55
+ }
56
+ end
57
+ end
@@ -0,0 +1,25 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe 'Caperoma::Credentials', :expect_db_write do
4
+ specify '#write' do
5
+ expect_any_instance_of(SDBM).to receive(:store).with('email', 'email@example.com')
6
+ expect_any_instance_of(SDBM).to receive(:store).with('password', 'secret123')
7
+
8
+ Credentials.write(['config', '--jira', 'email@example.com', 'secret123'])
9
+ end
10
+
11
+ describe '#read' do
12
+ context 'data present' do
13
+ let(:expected_result) { { email: 'email@example.com', password: 'secret123' } }
14
+
15
+ it 'should output credentials hash' do
16
+ expect_any_instance_of(SDBM).to receive(:to_hash).and_return expected_result
17
+
18
+ expect(Credentials.read).to eq expected_result
19
+ end
20
+ end
21
+
22
+ context 'data is not present', :pending do
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe 'JiraClient' do
4
+ describe 'initialize' do
5
+ let!(:credentials) do
6
+ {
7
+ username: 'test@example.com',
8
+ password: 'secret123',
9
+ site: 'https://cubuss.atlassian.net/',
10
+ context_path: '',
11
+ auth_type: :basic,
12
+ use_ssl: true
13
+ }
14
+ end
15
+
16
+ it 'should sign in' do
17
+ expected_credentials = { email: 'test@example.com', password: 'secret123' }
18
+ allow(Credentials).to receive(:read).and_return expected_credentials
19
+ expect(JIRA::Client).to receive(:new).with(credentials)
20
+
21
+ JiraClient.new
22
+ end
23
+ end
24
+
25
+ describe '#find_project' do
26
+ it 'should find project Ruck.us' do
27
+ # expect_any_instance_of(JIRA::Client).to receive_message_chain(:Project, :all).and_return JIRA::Project.build
28
+ end
29
+ end
30
+
31
+ describe '#chore' do
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,25 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe 'Caperoma' do
4
+ describe '#chore' do
5
+ it 'triggers chore creation' do
6
+ expect_any_instance_of(JiraClient).to receive(:create_chore).with([1, 2])
7
+ Caperoma.chore([1, 2])
8
+ end
9
+ end
10
+
11
+ describe '#config' do
12
+ it 'saves jira email/password' do
13
+ expect(Credentials).to receive(:write).with('args')
14
+
15
+ Caperoma.config('args')
16
+ end
17
+ end
18
+
19
+ describe '#test' do
20
+ it 'outputs msg' do
21
+ expect(STDOUT).to receive(:puts).with('works')
22
+ Caperoma.test
23
+ end
24
+ end
25
+ end
@@ -14,21 +14,17 @@ end
14
14
  ENV["COVERAGE"] && SimpleCov.start do
15
15
  add_filter "/.rvm/"
16
16
  end
17
- require 'rubygems'
18
- require 'bundler'
19
- begin
20
- Bundler.setup(:default, :development)
21
- rescue Bundler::BundlerError => e
22
- $stderr.puts e.message
23
- $stderr.puts "Run `bundle install` to install missing gems"
24
- exit e.status_code
25
- end
26
- require 'test/unit'
27
- require 'shoulda'
28
-
29
17
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
30
18
  $LOAD_PATH.unshift(File.dirname(__FILE__))
19
+
20
+ require 'rspec'
31
21
  require 'caperoma'
32
22
 
33
- class Test::Unit::TestCase
23
+ # Requires supporting files with custom matchers and macros, etc,
24
+ # in ./support/ and its subdirectories.
25
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
26
+
27
+ RSpec.configure do |config|
28
+ config.color = true
29
+ config.tty = true
34
30
  end
@@ -0,0 +1,9 @@
1
+ RSpec.configure do |config|
2
+ config.before do |example|
3
+ if example.metadata[:expect_db_write].nil?
4
+ allow(SDBM).to receive(:open).with('jira_credentials').and_return SDBM.open 'test'
5
+ else
6
+ expect(SDBM).to receive(:open).with('jira_credentials').and_return SDBM.open 'test'
7
+ end
8
+ end
9
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caperoma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serge Vinogradoff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-19 00:00:00.000000000 Z
11
+ date: 2014-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jira-ruby
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'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: shoulda
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  description: 'Optimize trivial things I do a lot every day: log time to Jira, start/finish
84
112
  tasks in Pivotal etc.'
85
113
  email: serge@railsmuffin.com
@@ -100,8 +128,13 @@ files:
100
128
  - bin/caperoma
101
129
  - caperoma.gemspec
102
130
  - lib/caperoma.rb
103
- - test/helper.rb
104
- - test/test_caperoma.rb
131
+ - lib/caperoma/credentials.rb
132
+ - lib/caperoma/jira_client.rb
133
+ - spec/caperoma/credentials_spec.rb
134
+ - spec/caperoma/jira_spec.rb
135
+ - spec/caperoma_spec.rb
136
+ - spec/spec_helper.rb
137
+ - spec/support/stubs.rb
105
138
  homepage: http://github.com/zoopyserg/caperoma
106
139
  licenses:
107
140
  - MIT
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestCaperoma < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end