omg_pull_request 0.1.0 → 0.2.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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omg_pull_request (0.1.0)
4
+ omg_pull_request (0.2.1)
5
5
  activesupport (>= 3.2.6)
6
6
  aws-s3 (>= 0.6.3)
7
7
  faraday (>= 0.8.4)
@@ -32,7 +32,7 @@ GEM
32
32
  oauth2
33
33
  hashie (1.2.0)
34
34
  httpauth (0.1)
35
- i18n (0.6.0)
35
+ i18n (0.6.1)
36
36
  jwt (0.1.5)
37
37
  multi_json (>= 1.0)
38
38
  macaddr (1.6.1)
@@ -40,7 +40,7 @@ GEM
40
40
  metaclass (0.0.1)
41
41
  mime-types (1.19)
42
42
  minitest (3.3.0)
43
- mocha (0.11.4)
43
+ mocha (0.12.3)
44
44
  metaclass (~> 0.0.1)
45
45
  multi_json (1.3.6)
46
46
  multipart-post (1.1.5)
data/bin/omg_pull_request CHANGED
@@ -3,11 +3,13 @@
3
3
  require 'omg_pull_request'
4
4
 
5
5
  include OmgPullRequest
6
+
6
7
  locale_dir = File.expand_path("../../locales", __FILE__)
8
+ configuration = Configuration.new
7
9
  I18n.load_path = [
8
10
  File.join(locale_dir, "omg.yml"),
9
11
  File.join(locale_dir, "en.yml")
10
12
  ]
11
- I18n.locale = CONFIGURATION.locale if CONFIGURATION.locale
13
+ I18n.locale = configuration.locale if configuration.locale
12
14
 
13
- TestRunner.start_daemon
15
+ TestRunner.start_daemon(configuration)
@@ -25,12 +25,5 @@ require 'omg_pull_request/lolcommits'
25
25
  require 'omg_pull_request/version'
26
26
 
27
27
  module OmgPullRequest
28
- CONFIGURATION = Configuration.new
29
- CONTEXT = Context.new
30
- GITHUB_WRAPPER = GithubWrapper.new(:configuration => CONFIGURATION)
31
-
32
- STORE = CONFIGURATION.storage_class.new(:configuration => CONFIGURATION,
33
- :github_wrapper => GITHUB_WRAPPER)
28
+ CONTEXT = Context.new
34
29
  end
35
-
36
-
@@ -1,13 +1,13 @@
1
1
  module OmgPullRequest
2
2
  class Configuration
3
- attr_accessor :config
3
+ attr_accessor :config, :local_repo
4
4
 
5
5
  def initialize(attributes={})
6
6
  attributes.each do |attr, value|
7
7
  self.send("#{attr}=", value)
8
8
  end
9
9
 
10
- if File.exists?(self.config_file)
10
+ if config.blank? && File.exists?(self.config_file)
11
11
  @config = YAML.load(File.open(self.config_file))
12
12
  end
13
13
  end
@@ -21,7 +21,7 @@ module OmgPullRequest
21
21
  end
22
22
 
23
23
  def local_repo
24
- self.config['local_repo'] || Dir.pwd
24
+ @local_repo ||= ((self.config || Hash.new)['local_repo'] || Dir.pwd)
25
25
  end
26
26
 
27
27
  def database_yml
@@ -38,7 +38,7 @@ module OmgPullRequest
38
38
  end
39
39
 
40
40
  def omg_dir
41
- File.join(Dir.pwd, 'test/omg_pull_request')
41
+ File.join(local_repo, 'test/omg_pull_request')
42
42
  end
43
43
 
44
44
  def runner_class
@@ -46,7 +46,7 @@ module OmgPullRequest
46
46
  end
47
47
 
48
48
  def github_comment(message)
49
- GITHUB_WRAPPER.make_comment(self.issue_number, message)
49
+ self.github_wrapper.make_comment(self.issue_number, message)
50
50
  end
51
51
 
52
52
  def runner_hash(also=Hash.new)
@@ -1,10 +1,25 @@
1
1
  module OmgPullRequest
2
2
  module TestRunner
3
- def self.start_daemon
3
+
4
+ def self.start_daemon(configuration=Configuration.new, daemonize=true)
5
+ github_wrapper = GithubWrapper.new(
6
+ :configuration => configuration
7
+ )
8
+
9
+ store = configuration.storage_class.new(
10
+ :configuration => configuration,
11
+ :github_wrapper => github_wrapper
12
+ )
13
+
4
14
  while(true)
5
15
  begin
6
- GITHUB_WRAPPER.pull_requests.each do |pr|
7
- runner = CONFIGURATION.runner_class.new(:configuration => CONFIGURATION, :pull_request => pr)
16
+ github_wrapper.pull_requests.each do |pr|
17
+ runner = configuration.runner_class.new(
18
+ :configuration => configuration,
19
+ :pull_request => pr,
20
+ :github_wrapper => github_wrapper,
21
+ :store => store
22
+ )
8
23
  next if CONTEXT.ran?(runner.request_sha)
9
24
  CONTEXT.ran(runner.request_sha)
10
25
 
@@ -15,8 +30,10 @@ module OmgPullRequest
15
30
  puts "An Error Occured: #{ex.inspect}\n#{ex.backtrace}"
16
31
  end
17
32
 
33
+ return if daemonize == false
18
34
  sleep(60)
19
35
  end
20
36
  end
37
+
21
38
  end
22
39
  end
@@ -1,7 +1,7 @@
1
1
  module OmgPullRequest
2
2
  module TestRunner
3
3
  class Base
4
- attr_accessor :success, :runtime, :pull_request, :configuration
4
+ attr_accessor :success, :runtime, :pull_request, :configuration, :github_wrapper, :store
5
5
  include Notifications
6
6
 
7
7
  def initialize(attributes={})
@@ -27,7 +27,7 @@ module OmgPullRequest
27
27
  return
28
28
  end
29
29
 
30
- Bundler.with_original_env do
30
+ Bundler.with_clean_env do
31
31
  setup
32
32
 
33
33
  t = Time.now
@@ -77,23 +77,23 @@ module OmgPullRequest
77
77
  end
78
78
 
79
79
  def logger
80
- @logger ||= TestLogger.new(:store => STORE)
80
+ @logger ||= TestLogger.new(:store => self.store)
81
81
  end
82
82
 
83
83
  def prowl_client
84
- @prowl_client ||= Prowl.new(:configuration => CONFIGURATION, :logger => logger, :runner => self, :github_wrapper => GITHUB_WRAPPER)
84
+ @prowl_client ||= Prowl.new(:configuration => self.configuration, :logger => logger, :runner => self, :github_wrapper => self.github_wrapper)
85
85
  end
86
86
 
87
87
  def lolcommits_client
88
- @lolcommits ||= Lolcommits.new(:configuration => CONFIGURATION, :github_wrapper => GITHUB_WRAPPER, :runner => self, :context => CONTEXT)
88
+ @lolcommits ||= Lolcommits.new(:configuration => self.configuration, :github_wrapper => self.github_wrapper, :runner => self, :context => CONTEXT)
89
89
  end
90
90
 
91
91
  def git_client
92
- @git_client ||= GitClient.new(:logger => logger, :configuration => CONFIGURATION)
92
+ @git_client ||= GitClient.new(:logger => logger, :configuration => self.configuration)
93
93
  end
94
94
 
95
95
  def notifier
96
- @notifier ||= Notifier.new(:runner => self, :github_wrapper => GITHUB_WRAPPER)
96
+ @notifier ||= Notifier.new(:runner => self, :github_wrapper => self.configuration)
97
97
  end
98
98
 
99
99
  def log(message)
@@ -1,3 +1,3 @@
1
1
  module OmgPullRequest
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -130,11 +130,21 @@ class RunnerTest < MiniTest::Unit::TestCase
130
130
  }
131
131
  }
132
132
  }
133
+ config = OmgPullRequest::Configuration.new(:config => configuration)
134
+
135
+ github_wrapper = OmgPullRequest::GithubWrapper.new(
136
+ :configuration => config
137
+ )
138
+ store = config.storage_class.new(
139
+ :configuration => config,
140
+ :github_wrapper => github_wrapper
141
+ )
133
142
 
134
- OmgPullRequest::CONFIGURATION.config = configuration
135
143
  OmgPullRequest::TestRunner::Rails.new(
136
- :configuration => OmgPullRequest::CONFIGURATION,
137
- :pull_request => pull_request
144
+ :github_wrapper => github_wrapper,
145
+ :configuration => config,
146
+ :pull_request => pull_request,
147
+ :store => store
138
148
  )
139
149
  end
140
150
 
data/test/test_helper.rb CHANGED
@@ -21,6 +21,16 @@ end
21
21
 
22
22
  FakeWeb.allow_net_connect = false
23
23
 
24
+ MOCK_CONFIGURATION = OmgPullRequest::Configuration.new
25
+ MOCK_GITHUB_WRAPPER = OmgPullRequest::GithubWrapper.new(
26
+ :configuration => MOCK_CONFIGURATION
27
+ )
28
+
29
+ MOCK_STORE = MOCK_CONFIGURATION.storage_class.new(
30
+ :configuration => MOCK_CONFIGURATION,
31
+ :github_wrapper => MOCK_GITHUB_WRAPPER
32
+ )
33
+
24
34
  def fakeweb_get_pull_request_commits
25
35
  FakeWeb.register_uri(:get,
26
36
  "https://omg:pull_request@api.github.com/repos/kenmazaika/pictures/pulls/10/commits",
@@ -42,7 +42,7 @@ module OmgPullRequest
42
42
  protected
43
43
 
44
44
  def github_wrapper
45
- @github_wrapper ||= GithubWrapper.new(:configuration => CONFIGURATION)
45
+ @github_wrapper ||= GithubWrapper.new(:configuration => MOCK_CONFIGURATION)
46
46
  end
47
47
  end
48
48
 
@@ -35,7 +35,7 @@ module OmgPullRequest
35
35
  end
36
36
 
37
37
  def lolcommits_client
38
- @lolcommits_client ||= Lolcommits.new(:context => CONTEXT, :github_wrapper => GITHUB_WRAPPER,
38
+ @lolcommits_client ||= Lolcommits.new(:context => CONTEXT, :github_wrapper => MOCK_GITHUB_WRAPPER,
39
39
  :runner => TestRunner::Base.new(:pull_request => MockPullRequest.new))
40
40
  end
41
41
  end
@@ -77,6 +77,10 @@ module OmgPullRequest
77
77
  class MockRunner
78
78
  include Notifications
79
79
 
80
+ def github_wrapper
81
+ MOCK_GITHUB_WRAPPER
82
+ end
83
+
80
84
  def abbr_from_sha
81
85
  "abbr_from_sha"
82
86
  end
@@ -43,9 +43,9 @@ module OmgPullRequest
43
43
  def prowl_client
44
44
  runner = TestRunner::Base.new(:pull_request => MockPullRequest.new)
45
45
  runner.expects(:git_client).returns(MockGitClient.new).at_least(0)
46
- @prowl_client ||= OmgPullRequest::Prowl.new(:configuration => CONFIGURATION,
46
+ @prowl_client ||= OmgPullRequest::Prowl.new(:configuration => MOCK_CONFIGURATION,
47
47
  :runner => runner,
48
- :github_wrapper => GITHUB_WRAPPER)
48
+ :github_wrapper => MOCK_GITHUB_WRAPPER)
49
49
  end
50
50
  end
51
51
  end
@@ -12,8 +12,8 @@ module OmgPullRequest
12
12
 
13
13
  def storage
14
14
  @store ||= Gist.new(
15
- :configuration => Configuration.new,
16
- :github_wrapper => GITHUB_WRAPPER
15
+ :configuration => MOCK_CONFIGURATION,
16
+ :github_wrapper => MOCK_GITHUB_WRAPPER
17
17
  )
18
18
  end
19
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omg_pull_request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,11 +12,11 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-08-28 00:00:00.000000000Z
15
+ date: 2012-09-09 00:00:00.000000000Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: aws-s3
19
- requirement: &70246577608500 !ruby/object:Gem::Requirement
19
+ requirement: &70109182790380 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ! '>='
@@ -24,10 +24,10 @@ dependencies:
24
24
  version: 0.6.3
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *70246577608500
27
+ version_requirements: *70109182790380
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: faraday
30
- requirement: &70246577607840 !ruby/object:Gem::Requirement
30
+ requirement: &70109182789880 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ! '>='
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: 0.8.4
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *70246577607840
38
+ version_requirements: *70109182789880
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: github_api
41
- requirement: &70246577605960 !ruby/object:Gem::Requirement
41
+ requirement: &70109182789420 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ! '>='
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: 0.6.5
47
47
  type: :runtime
48
48
  prerelease: false
49
- version_requirements: *70246577605960
49
+ version_requirements: *70109182789420
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: uuid
52
- requirement: &70246577604940 !ruby/object:Gem::Requirement
52
+ requirement: &70109182788960 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: 2.3.5
58
58
  type: :runtime
59
59
  prerelease: false
60
- version_requirements: *70246577604940
60
+ version_requirements: *70109182788960
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
- requirement: &70246577604080 !ruby/object:Gem::Requirement
63
+ requirement: &70109182788500 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ! '>='
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: 0.9.2.2
69
69
  type: :runtime
70
70
  prerelease: false
71
- version_requirements: *70246577604080
71
+ version_requirements: *70109182788500
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: activesupport
74
- requirement: &70246577603340 !ruby/object:Gem::Requirement
74
+ requirement: &70109182788040 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ! '>='
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: 3.2.6
80
80
  type: :runtime
81
81
  prerelease: false
82
- version_requirements: *70246577603340
82
+ version_requirements: *70109182788040
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: i18n
85
- requirement: &70246577602100 !ruby/object:Gem::Requirement
85
+ requirement: &70109182787580 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ! '>='
@@ -90,7 +90,7 @@ dependencies:
90
90
  version: 0.6.0
91
91
  type: :runtime
92
92
  prerelease: false
93
- version_requirements: *70246577602100
93
+ version_requirements: *70109182787580
94
94
  description: Have tests run automatically for your Github Pull Request
95
95
  email:
96
96
  - kenmazaika@gmail.com