relevance-github_hook 0.6.2 → 0.7.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.
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v0.7.0. Switch to using ActiveSupport JSON instead of the JSON gem. The JSON gem would not play nice with ActiveSupport's to_json within Rails projects, so the JSON gem had to go. This means timestamps are returned as real Time objects instead of strings.
2
+
1
3
  v0.6.2. Capture private flag and parse it to boolean from string
2
4
 
3
5
  v0.6.0. Update for latest Github json spec; maintain backwards compatibility to avoid breaking stuff
data/README.txt CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  == FEATURES/PROBLEMS:
8
8
 
9
- * Provides a simple object wrapper around the post recieve hook that Github provides. For more details on Github's post recieve hooks, see http://github.com/guides/post-receive-hooks.
9
+ * Provides a simple object wrapper around the post receive hook that Github provides. For more details on Github's post receive hooks, see http://github.com/guides/post-receive-hooks.
10
10
 
11
11
  == SYNOPSIS:
12
12
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  == REQUIREMENTS:
16
16
 
17
- * json rubygem
17
+ * activesupport
18
18
 
19
19
  == INSTALL:
20
20
 
data/Rakefile CHANGED
@@ -12,5 +12,4 @@ Echoe.new('github_hook', GithubHook::VERSION) do |p|
12
12
  rdoc_template = `allison --path`.strip << ".rb"
13
13
  p.rdoc_template = rdoc_template
14
14
  p.test_pattern = 'spec/**/*_spec.rb'
15
- p.dependencies = "json"
16
15
  end
data/github_hook.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{github_hook}
3
- s.version = "0.6.2"
3
+ s.version = "0.7.0"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new("= 1.2") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Rob Sanheim"]
7
- s.date = %q{2008-09-02}
7
+ s.date = %q{2008-09-11}
8
8
  s.description = %q{Wrapper around the github post receive JSON payload.}
9
9
  s.email = %q{opensource@thinkrelevance.com}
10
10
  s.extra_rdoc_files = ["CHANGELOG", "lib/github_hook.rb", "README.txt"]
11
- s.files = ["CHANGELOG", "github_hook.gemspec", "lib/github_hook.rb", "Manifest", "Rakefile", "README.txt", "spec/github_hook_spec.rb", "spec/helper.rb", "spec/payload.rb", "spec/vendor/bacon-0.9.0/bin/bacon", "spec/vendor/bacon-0.9.0/COPYING", "spec/vendor/bacon-0.9.0/lib/bacon.rb", "spec/vendor/bacon-0.9.0/Rakefile", "spec/vendor/bacon-0.9.0/RDOX", "spec/vendor/bacon-0.9.0/README", "spec/vendor/bacon-0.9.0/test/spec_bacon.rb"]
11
+ s.files = ["CHANGELOG", "github_hook.gemspec", "lib/github_hook.rb", "Manifest", "Rakefile", "README.txt", "spec/github_hook_spec.rb", "spec/helper.rb", "spec/payload.rb", "spec/vendor/bacon-0.9.0/bin/bacon", "spec/vendor/bacon-0.9.0/COPYING", "spec/vendor/bacon-0.9.0/lib/bacon.rb", "spec/vendor/bacon-0.9.0/Rakefile", "spec/vendor/bacon-0.9.0/RDOX", "spec/vendor/bacon-0.9.0/README", "spec/vendor/bacon-0.9.0/test/spec_bacon.rb", "spec/github_hook_functional_spec.rb"]
12
12
  s.has_rdoc = true
13
13
  s.homepage = %q{http://opensource.thinkrelevance.com/wiki/github_hook}
14
14
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Github_hook", "--main", "README.txt"]
@@ -16,21 +16,18 @@ Gem::Specification.new do |s|
16
16
  s.rubyforge_project = %q{thinkrelevance}
17
17
  s.rubygems_version = %q{1.2.0}
18
18
  s.summary = %q{Wrapper around the github post receive JSON payload.}
19
- s.test_files = ["spec/github_hook_spec.rb"]
19
+ s.test_files = ["spec/github_hook_functional_spec.rb", "spec/github_hook_spec.rb"]
20
20
 
21
21
  if s.respond_to? :specification_version then
22
22
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
23
  s.specification_version = 2
24
24
 
25
25
  if current_version >= 3 then
26
- s.add_runtime_dependency(%q<json>, [">= 0"])
27
26
  s.add_development_dependency(%q<echoe>, [">= 0"])
28
27
  else
29
- s.add_dependency(%q<json>, [">= 0"])
30
28
  s.add_dependency(%q<echoe>, [">= 0"])
31
29
  end
32
30
  else
33
- s.add_dependency(%q<json>, [">= 0"])
34
31
  s.add_dependency(%q<echoe>, [">= 0"])
35
32
  end
36
33
  end
data/lib/github_hook.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  require 'rubygems'
2
- require 'json'
2
+ require 'activesupport'
3
3
  require 'ostruct'
4
4
 
5
5
  class GithubHook
6
- VERSION = '0.6.2'
6
+ VERSION = '0.7.0'
7
7
  attr_reader :before, :after, :ref, :repository, :owner, :commits
8
8
 
9
9
  def initialize(json)
10
- payload = JSON.parse(json)
10
+ payload = ActiveSupport::JSON.decode(json)
11
11
  @before, @after, @ref = payload["before"], payload["after"], payload["ref"]
12
12
  @repository = OpenStruct.new(payload["repository"])
13
13
  @repository.private = parse_private_flag(@repository.private)
@@ -16,7 +16,7 @@ class GithubHook
16
16
  end
17
17
 
18
18
  def parse_private_flag(private_flag)
19
- private_flag == "true" ? true : false
19
+ private_flag.to_s == "true" ? true : false
20
20
  end
21
21
 
22
22
  def create_commits(payload)
@@ -0,0 +1,15 @@
1
+ require File.join(File.dirname(__FILE__), *%w[helper])
2
+
3
+ describe GithubHook do
4
+
5
+ before { @pc = GithubHook.new(FiveRunsPayLoad)}
6
+
7
+ it "has commits" do
8
+ @pc.commits.should.not.be.empty
9
+ @pc.commits[0].sha.should == "bb7aebb382539bbd3e7a6118fc37438730c9ade5"
10
+ @pc.commits[0].message.should == "Note that the echoe gem is required to use the Rakefile."
11
+ @pc.commits[1].sha.should == "093560ad918d58f3864507f19462fd7c04f34eac"
12
+ @pc.commits[1].message.should == "Ignore the generated packages."
13
+ end
14
+
15
+ end
@@ -15,7 +15,7 @@ describe GithubHook do
15
15
  commit = @pc.commits.first
16
16
  commit.url.should == "http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0"
17
17
  commit.message.should == "update pricing a tad"
18
- commit.timestamp.should == "2008-02-15T14:36:34-08:00"
18
+ commit.timestamp.should == Time.parse("2008-02-15T14:36:34-08:00")
19
19
  end
20
20
 
21
21
  it "has commit author" do
@@ -67,7 +67,7 @@ describe GithubHook do
67
67
  commit = @pc.commits.first
68
68
  commit.url.should == "http://github.com/defunkt/github/commit/41a212ee83ca127e3c8cf465891ab7216a705f59"
69
69
  commit.message.should == "okay i give in"
70
- commit.timestamp.should == "2008-02-15T14:57:17-08:00"
70
+ commit.timestamp.should == Time.parse("2008-02-15T14:57:17-08:00")
71
71
  end
72
72
 
73
73
  it "has commit author" do
@@ -83,15 +83,18 @@ describe GithubHook do
83
83
  end
84
84
 
85
85
  describe "private project" do
86
- before { @pc = GithubHook.new(PrivateProject)}
87
86
 
88
- it "is private if private flag is false" do
87
+ it "is private if private flag is string true" do
88
+ @pc = GithubHook.new(PrivateProjectWithStringTrue)
89
89
  @pc.repository.private.should == true
90
90
  end
91
91
 
92
+ it "is private if private flag is literal true" do
93
+ @pc = GithubHook.new(PrivateProjectWithLiteralTrue)
94
+ @pc.repository.private.should == true
95
+ end
96
+
92
97
  end
93
-
94
-
95
98
 
96
99
  end
97
100
 
data/spec/payload.rb CHANGED
@@ -74,7 +74,7 @@ PayloadAfterJuly30 = <<-EOL
74
74
  }
75
75
  EOL
76
76
 
77
- PrivateProject = <<-EOL
77
+ PrivateProjectWithStringTrue = <<-EOL
78
78
  {
79
79
  "before": "5aef35982fb2d34e9d9d4502f6ede1072793222d",
80
80
  "repository": {
@@ -86,29 +86,25 @@ PrivateProject = <<-EOL
86
86
  "name": "defunkt"
87
87
  }
88
88
  },
89
- "commits": [
90
- {
91
- "id": "41a212ee83ca127e3c8cf465891ab7216a705f59",
92
- "url": "http://github.com/defunkt/github/commit/41a212ee83ca127e3c8cf465891ab7216a705f59",
93
- "author": {
94
- "email": "chris@ozmm.org",
95
- "name": "Chris Wanstrath"
96
- },
97
- "message": "okay i give in",
98
- "timestamp": "2008-02-15T14:57:17-08:00",
99
- "added": ["filepath.rb"]
100
- },
101
- {
102
- "id": "de8251ff97ee194a289832576287d6f8ad74e3d0",
103
- "url": "http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0",
104
- "author": {
105
- "email": "chris@ozmm.org",
106
- "name": "Chris Wanstrath"
107
- },
108
- "message": "update pricing a tad",
109
- "timestamp": "2008-02-15T14:36:34-08:00"
89
+ "commits": [],
90
+ "after": "de8251ff97ee194a289832576287d6f8ad74e3d0",
91
+ "ref": "refs/heads/master"
92
+ }
93
+ EOL
94
+
95
+ PrivateProjectWithLiteralTrue = <<-EOL
96
+ {
97
+ "before": "5aef35982fb2d34e9d9d4502f6ede1072793222d",
98
+ "repository": {
99
+ "url": "http://github.com/defunkt/github",
100
+ "name": "github",
101
+ "private": true,
102
+ "owner": {
103
+ "email": "chris@ozmm.org",
104
+ "name": "defunkt"
110
105
  }
111
- ],
106
+ },
107
+ "commits": [],
112
108
  "after": "de8251ff97ee194a289832576287d6f8ad74e3d0",
113
109
  "ref": "refs/heads/master"
114
110
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relevance-github_hook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Sanheim
@@ -9,18 +9,9 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-02 00:00:00 -07:00
12
+ date: 2008-09-11 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: json
17
- version_requirement:
18
- version_requirements: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
23
- version:
24
15
  - !ruby/object:Gem::Dependency
25
16
  name: echoe
26
17
  version_requirement:
@@ -57,6 +48,7 @@ files:
57
48
  - spec/vendor/bacon-0.9.0/RDOX
58
49
  - spec/vendor/bacon-0.9.0/README
59
50
  - spec/vendor/bacon-0.9.0/test/spec_bacon.rb
51
+ - spec/github_hook_functional_spec.rb
60
52
  has_rdoc: true
61
53
  homepage: http://opensource.thinkrelevance.com/wiki/github_hook
62
54
  post_install_message:
@@ -89,4 +81,5 @@ signing_key:
89
81
  specification_version: 2
90
82
  summary: Wrapper around the github post receive JSON payload.
91
83
  test_files:
84
+ - spec/github_hook_functional_spec.rb
92
85
  - spec/github_hook_spec.rb