trollolo 0.0.3

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,50 @@
1
+ [
2
+ {
3
+ "pos": 16384,
4
+ "subscribed": false,
5
+ "name": "Sprint Backlog",
6
+ "closed": false,
7
+ "id": "53186e8391ef8671265eba9e",
8
+ "idBoard": "53186e8391ef8671265eba9d"
9
+ },
10
+ {
11
+ "pos": 32768,
12
+ "subscribed": false,
13
+ "name": "Doing",
14
+ "closed": false,
15
+ "id": "53186e8391ef8671265eba9f",
16
+ "idBoard": "53186e8391ef8671265eba9d"
17
+ },
18
+ {
19
+ "pos": 36864,
20
+ "subscribed": false,
21
+ "name": "Done Sprint 10",
22
+ "closed": false,
23
+ "id": "5319bf088cdf9cd82be336b0",
24
+ "idBoard": "53186e8391ef8671265eba9d"
25
+ },
26
+ {
27
+ "pos": 40960,
28
+ "subscribed": false,
29
+ "name": "Done Sprint 9",
30
+ "closed": false,
31
+ "id": "5319bf045c6ef0092c55331e",
32
+ "idBoard": "53186e8391ef8671265eba9d"
33
+ },
34
+ {
35
+ "pos": 49152,
36
+ "subscribed": false,
37
+ "name": "Done Sprint 8",
38
+ "closed": false,
39
+ "id": "53186e8391ef8671265ebaa0",
40
+ "idBoard": "53186e8391ef8671265eba9d"
41
+ },
42
+ {
43
+ "pos": 114688,
44
+ "subscribed": false,
45
+ "name": "Legend",
46
+ "closed": false,
47
+ "id": "5319bc0aa338308d42f108d6",
48
+ "idBoard": "53186e8391ef8671265eba9d"
49
+ }
50
+ ]
@@ -0,0 +1,2 @@
1
+ developer_public_key: mykey
2
+ member_token: mytoken
@@ -0,0 +1,39 @@
1
+ require_relative 'spec_helper'
2
+
3
+ describe Settings do
4
+
5
+ include GivenFilesystemSpecHelpers
6
+
7
+ context "given config file" do
8
+ before(:each) do
9
+ @settings = Settings.new( File.expand_path('../data/trollolorc',__FILE__) )
10
+ end
11
+
12
+ it "is not verbose by default" do
13
+ expect(@settings.verbose).to be false
14
+ end
15
+
16
+ it "reads config file" do
17
+ expect(@settings.developer_public_key).to eq "mykey"
18
+ expect(@settings.member_token).to eq "mytoken"
19
+ end
20
+ end
21
+
22
+ context "non-existent config file" do
23
+ use_given_filesystem
24
+
25
+ before(:each) do
26
+ @config_file = given_dummy_file
27
+ @settings = Settings.new(@config_file)
28
+ end
29
+
30
+ it "saves config file" do
31
+ @settings.developer_public_key = "mypublickey"
32
+ @settings.member_token = "mymembertoken"
33
+ @settings.save_config
34
+
35
+ expect(File.read(@config_file)).to eq "---\ndeveloper_public_key: mypublickey\nmember_token: mymembertoken\n"
36
+ end
37
+ end
38
+
39
+ end
@@ -0,0 +1,23 @@
1
+ require "codeclimate-test-reporter"
2
+ CodeClimate::TestReporter.start
3
+
4
+ require_relative '../lib/trollolo'
5
+
6
+ require 'given_filesystem/spec_helpers'
7
+ require 'webmock/rspec'
8
+
9
+ WebMock.disable_net_connect!(:allow => "codeclimate.com")
10
+
11
+ bin_path = File.expand_path( "../../bin/", __FILE__ )
12
+
13
+ if ENV['PATH'] !~ /#{bin_path}/
14
+ ENV['PATH'] = bin_path + File::PATH_SEPARATOR + ENV['PATH']
15
+ end
16
+
17
+ def load_test_file filename
18
+ File.read(File.expand_path('../data/' + filename,__FILE__))
19
+ end
20
+
21
+ def dummy_settings
22
+ Settings.new( File.expand_path('../data/trollolorc',__FILE__) )
23
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Trello do
4
+
5
+ let(:trello) { Trello.new(board_id: "myboard", developer_public_key: "mykey", member_token: "mytoken") }
6
+
7
+ describe "lists" do
8
+ it "returns a list of cards" do
9
+ stub_request(:get, "https://trello.com/1/boards/myboard/lists?key=mykey&token=mytoken").
10
+ to_return(:status => 200, :body => load_test_file('lists.json'))
11
+ expect(trello.lists).to be_a(Array)
12
+ end
13
+
14
+ it "handles a server returning garbage" do
15
+ stub_request(:get, "https://trello.com/1/boards/myboard/lists?key=mykey&token=mytoken").
16
+ to_return(:status => 503, :body => "nginx says no")
17
+ expect { trello.lists }.to raise_error(Trello::ApiError)
18
+ end
19
+
20
+ it "handles a non-200 response" do
21
+ stub_request(:get, "https://trello.com/1/boards/myboard/lists?key=mykey&token=mytoken").
22
+ to_return(:status => 404, :body => "{}")
23
+ expect { trello.lists }.to raise_error(Trello::ApiError)
24
+ end
25
+
26
+ it "handles a non-json response" do
27
+ stub_request(:get, "https://trello.com/1/boards/myboard/lists?key=mykey&token=mytoken").
28
+ to_return(:status => 200, :body => "well, garbage.")
29
+ expect { trello.lists }.to raise_error(Trello::ApiError)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require "expect"
4
+ require "pty"
5
+
6
+ config_path = "/tmp/test-trollolorc-#{rand(100000)}"
7
+ bin_path = File.expand_path('../../../bin/trollolo',__FILE__)
8
+
9
+ ENV["TROLLOLO_CONFIG_PATH"] = config_path
10
+
11
+ PTY.spawn("#{bin_path} #{ARGV.join(" ")}") do |trollolo_out,trollolo_in,pid|
12
+ if !trollolo_out.expect("key:",2)
13
+ exit 1
14
+ end
15
+ trollolo_in.puts("xxx")
16
+ if !trollolo_out.expect("token:",2)
17
+ exit 1
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/ruby
2
+
3
+ config_path = "/tmp/test-trollolorc-#{rand(100000)}"
4
+ bin_path = File.expand_path('../../../bin/trollolo',__FILE__)
5
+
6
+ ENV["TROLLOLO_CONFIG_PATH"] = config_path
7
+
8
+ cmd = "#{bin_path} #{ARGV.join(" ")}"
9
+
10
+ exec(cmd)
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/ruby
2
+
3
+ test_config_path = File.expand_path('../../data/trollolorc',__FILE__)
4
+ bin_path = File.expand_path('../../../bin/trollolo',__FILE__)
5
+
6
+ ENV["TROLLOLO_CONFIG_PATH"] = test_config_path
7
+ #cmd = "TROLLOLO_CONFIG_PATH=#{test_config_path} #{bin_path} #{ARGV.join(" ")}"
8
+
9
+ cmd = "#{bin_path} #{ARGV.join(" ")}"
10
+
11
+ exec(cmd)
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path("../lib/version", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "trollolo"
6
+ s.version = Trollolo::VERSION
7
+ s.license = 'GPL-3'
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ['Cornelius Schumacher']
10
+ s.email = ['cschum@suse.de']
11
+ s.homepage = "https://github.com/openSUSE/trollolo"
12
+ s.summary = "Trello command line client"
13
+ s.description = "Trollolo is a command line tool to access Trello and support tasks like generation of burndown charts."
14
+
15
+ s.required_rubygems_version = ">= 1.3.6"
16
+ s.rubyforge_project = "trollolo"
17
+
18
+ s.add_dependency "thor", ">=0.14.0"
19
+
20
+ s.files = `git ls-files`.split("\n")
21
+ s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
22
+ s.require_path = 'lib'
23
+
24
+ s.files += Dir['man/*.?'] # UNIX man pages
25
+ s.files += Dir['man/*.{html,css,js}'] # HTML man pages
26
+ s.add_development_dependency 'ronn', '>=0.7.3'
27
+ s.add_development_dependency 'rake'
28
+ end
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: trollolo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Cornelius Schumacher
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-22 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.14.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.14.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: ronn
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.3
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Trollolo is a command line tool to access Trello and support tasks like
56
+ generation of burndown charts.
57
+ email:
58
+ - cschum@suse.de
59
+ executables:
60
+ - trollolo
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - .gitignore
65
+ - .rspec
66
+ - .travis.yml
67
+ - CHANGELOG.md
68
+ - CONTRIBUTING.md
69
+ - COPYING
70
+ - Gemfile
71
+ - README.md
72
+ - Rakefile
73
+ - bin/trollolo
74
+ - lib/burndown_chart.rb
75
+ - lib/burndown_data.rb
76
+ - lib/card.rb
77
+ - lib/cli.rb
78
+ - lib/settings.rb
79
+ - lib/trello.rb
80
+ - lib/trollolo.rb
81
+ - lib/version.rb
82
+ - man/.gitignore
83
+ - man/trollolo.1.md
84
+ - scripts/create_burndown.py
85
+ - spec/burndown_chart_spec.rb
86
+ - spec/burndown_data_spec.rb
87
+ - spec/card_spec.rb
88
+ - spec/cli_spec.rb
89
+ - spec/command_line_spec.rb
90
+ - spec/data/burndown-data.yaml
91
+ - spec/data/burndown_dir/burndown-data-01.yaml
92
+ - spec/data/burndown_dir/burndown-data-02.yaml
93
+ - spec/data/burndown_dir/create_burndown
94
+ - spec/data/cards.json
95
+ - spec/data/lists.json
96
+ - spec/data/trollolorc
97
+ - spec/settings_spec.rb
98
+ - spec/spec_helper.rb
99
+ - spec/trello_spec.rb
100
+ - spec/wrapper/credentials_input_wrapper
101
+ - spec/wrapper/empty_config_trollolo_wrapper
102
+ - spec/wrapper/trollolo_wrapper
103
+ - trollolo.gemspec
104
+ - man/trollolo.1
105
+ - man/trollolo.1.html
106
+ homepage: https://github.com/openSUSE/trollolo
107
+ licenses:
108
+ - GPL-3
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - '>='
122
+ - !ruby/object:Gem::Version
123
+ version: 1.3.6
124
+ requirements: []
125
+ rubyforge_project: trollolo
126
+ rubygems_version: 2.0.3
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: Trello command line client
130
+ test_files: []
131
+ has_rdoc: