caperoma 0.0.2 → 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 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