tpdata 1.0.12 → 1.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.
data/.gitignore ADDED
@@ -0,0 +1,31 @@
1
+ # OS-specific
2
+ .DS_Store
3
+
4
+ # Bundler/Rubygems
5
+ .bundle
6
+ pkg/*
7
+ tags
8
+ Gemfile.lock
9
+ test/tmp/
10
+
11
+ # Versioning
12
+ .rbenv-version
13
+ .rvmrc
14
+
15
+ # Documentation
16
+ _site/*
17
+ .yardoc/
18
+ doc/
19
+
20
+ # Python
21
+ *.pyc
22
+
23
+ # Rubinius
24
+ *.rbc
25
+
26
+ # IDE junk
27
+ .idea/*
28
+ *.iml
29
+
30
+ # Testing
31
+ coverage
data/Gemfile CHANGED
@@ -1,9 +1,2 @@
1
1
  source :rubygems
2
-
3
- gem 'httparty'
4
-
5
- # Testing
6
- group :test do
7
- gem 'rspec'
8
- gem 'rake'
9
- end
2
+ gemspec
data/Manifest.txt CHANGED
@@ -1,3 +1,4 @@
1
+ .gitignore
1
2
  Gemfile
2
3
  Manifest.txt
3
4
  README.md
@@ -13,3 +14,4 @@ spec/lib/data_spec.rb
13
14
  spec/lib/identity_spec.rb
14
15
  spec/spec_helper.rb
15
16
  theplatform.gemspec
17
+ tpdata_version
data/Rakefile CHANGED
@@ -3,8 +3,11 @@
3
3
  require 'rspec/core/rake_task'
4
4
 
5
5
  desc "Run specs"
6
- RSpec::Core::RakeTask.new do |t|
7
- t.pattern = './spec/*/*_spec.rb'
8
- end
6
+ RSpec::Core::RakeTask.new(:spec)
9
7
 
10
8
  task default: :spec
9
+
10
+ task :coverage do |t|
11
+ ENV["COVERAGE"] = 'true'
12
+ Rake::Task[:spec].execute
13
+ end
data/lib/theplatform.rb CHANGED
@@ -1,12 +1,10 @@
1
- $:.unshift( File.dirname( __FILE__ ))
2
-
3
1
  require 'httparty'
4
2
 
5
3
  # Start of wrapper for tpdata
6
4
  module ThePlatform
7
5
 
8
- # Set gem version
9
- VERSION = '1.0.12'
6
+ # Set Version
7
+ VERSION = File.read(File.expand_path("../../tpdata_version",__FILE__)).strip
10
8
 
11
9
  require 'theplatform/configuration'
12
10
  require 'theplatform/services'
@@ -24,20 +24,20 @@ module ThePlatform
24
24
  # List available parameters and values in those params
25
25
  def parameters
26
26
  @values = {}
27
- keys.each { |k| @values.merge! k => get_var("@#{k}") }
27
+ keys.each { |k| @values.merge! k => get_var(k) unless get_var(k) == nil }
28
28
  @values
29
29
  end
30
30
 
31
31
  # Returns true or false if all parameters are set.
32
32
  def parameters?
33
- parameters.values.all?
33
+ parameters.keys == keys
34
34
  end
35
35
 
36
36
  private
37
37
 
38
38
  # Helper to clean up recursive method in #parameters
39
39
  def get_var(var)
40
- self.instance_variable_get(var)
40
+ self.instance_variable_get("@#{var}")
41
41
  end
42
42
 
43
43
  end
@@ -25,7 +25,7 @@ describe ThePlatform::Configuration do
25
25
  it 'should return false if all values are not set' do
26
26
  ThePlatform::Data.schema = nil
27
27
  ThePlatform::Data.parameters[:schema].should == nil
28
- ThePlatform::Data.parameters?.should be false
28
+ ThePlatform::Data.parameters?.should eq false
29
29
  end
30
30
 
31
31
  end
@@ -28,39 +28,133 @@ describe ThePlatform::Data do
28
28
 
29
29
  describe 'requests' do
30
30
 
31
- it 'should return 200' do
32
- ThePlatform.const_get(:SERVICE).keys.each do |endpoint|
33
- ThePlatform::Data.send(endpoint).get('', 'all', schema:'1.0', form:'json').code.should == 200
31
+ it 'should return a HTTParty::Response object' do
32
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
33
+ stub_request(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/")
34
+ .with(:query => hash_including({}))
35
+ .to_return(:status => 200, :body => "", :headers => {})
36
+ ThePlatform::Data.send(service).get('','all',{}).class == HTTParty::Response
34
37
  end
35
38
  end
36
39
 
37
40
  it 'should make a GET against an endpoint' do
38
- ThePlatform.const_get(:SERVICE).keys.each do |endpoint|
39
- ThePlatform::Data.send(endpoint).get('Object', 'all').request.instance_variable_get(:@http_method).should equal Net::HTTP::Get
41
+ object = "Object"
42
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
43
+ WebMock.reset!
44
+ stub_request(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/" + object)
45
+ .with(:query => hash_including({}))
46
+
47
+ ThePlatform::Data.send(service).get(object, 'all')
48
+
49
+ WebMock.should have_requested(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'data/' + object)
50
+ .with(:query => hash_including({}))
40
51
  end
41
52
  end
42
53
 
43
54
  it 'should make a POST against an endpoint' do
44
- ThePlatform.const_get(:SERVICE).keys.each do |endpoint|
45
- ThePlatform::Data.send(endpoint).post('Object', '{BODY}').request.instance_variable_get(:@http_method).should equal Net::HTTP::Post
55
+ object = "Object"
56
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
57
+ WebMock.reset!
58
+ stub_request(:post, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/" + object)
59
+ .with(:query => hash_including({}))
60
+
61
+ ThePlatform::Data.send(service).post(object, 'all')
62
+
63
+ WebMock.should have_requested(:post, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'data/' + object)
64
+ .with(:query => hash_including({}))
46
65
  end
47
66
  end
48
67
 
49
68
  it 'should make a PUT against an endpoint' do
50
- ThePlatform.const_get(:SERVICE).keys.each do |endpoint|
51
- ThePlatform::Data.send(endpoint).put('Object', '{BODY}').request.instance_variable_get(:@http_method).should equal Net::HTTP::Put
69
+ object = "Object"
70
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
71
+ WebMock.reset!
72
+ stub_request(:put, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/" + object)
73
+ .with(:query => hash_including({}))
74
+
75
+ ThePlatform::Data.send(service).put(object, 'all')
76
+
77
+ WebMock.should have_requested(:put, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'data/' + object)
78
+ .with(:query => hash_including({}))
52
79
  end
53
80
  end
54
81
 
55
82
  it 'should make a DELETE against an endpoint' do
56
- ThePlatform.const_get(:SERVICE).keys.each do |endpoint|
57
- ThePlatform::Data.send(endpoint).delete('Object', 'IDS').request.instance_variable_get(:@http_method).should equal Net::HTTP::Delete
83
+ object = "Object"
84
+ objectId = '123'
85
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
86
+ WebMock.reset!
87
+ stub_request(:delete, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/" + object + "/" + objectId)
88
+ .with(:query => hash_including({}))
89
+
90
+ ThePlatform::Data.send(service).delete(object, objectId)
91
+
92
+ WebMock.should have_requested(:delete, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'data/' + object + "/" + objectId)
93
+ .with(:query => hash_including({}))
58
94
  end
59
95
  end
60
96
 
61
- it 'should be able to use the NOTIFY method' do
62
- ThePlatform.const_get(:SERVICE).keys.each do |endpoint|
63
- ThePlatform::Data.send(endpoint).notify('options').request.instance_variable_get(:@http_method).should equal Net::HTTP::Get
97
+ it 'should perform GET method on the NOTIFY endpoint' do
98
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
99
+ WebMock.reset!
100
+ stub_request(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "notify")
101
+ .with(:query => hash_including({}))
102
+
103
+ ThePlatform::Data.send(service).notify(token:'Nez8Y9ScVDxPxLDmUsg_ESCDYJCJwPBk', size:'10', since:'11111111')
104
+
105
+ WebMock.should have_requested(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'notify')
106
+ .with(:query => hash_including({}))
107
+ end
108
+ end
109
+
110
+ it 'should bubble up any exception' do
111
+ object = "Object"
112
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
113
+ WebMock.reset!
114
+ stub_request(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/" + object)
115
+ .with(:query => hash_including({}))
116
+ .to_raise(Exception)
117
+
118
+ expect{ThePlatform::Data.send(service).get(object, 'all')}.to raise_error(Exception)
119
+
120
+ WebMock.should have_requested(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'data/' + object)
121
+ .with(:query => hash_including({}))
122
+ end
123
+ end
124
+
125
+ it 'should show the gem name/version number as the User-Agent' do
126
+ object = "Object"
127
+ version = File.read(File.expand_path("../../../tpdata_version",__FILE__)).strip
128
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
129
+ WebMock.reset!
130
+ stub_request(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/" + object)
131
+ .with(:query => hash_including({}))
132
+
133
+ ThePlatform::Data.send(service).get(object, 'all')
134
+
135
+ WebMock.should have_requested(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'data/' + object)
136
+ .with(:query => hash_including({}), :headers => {"User-Agent" => "tpdata/#{version}"})
137
+ end
138
+ end
139
+
140
+ it 'should make the correct Content-Type request' do
141
+ object = "Object"
142
+ ThePlatform.const_get(:SERVICE).keys.each do |service|
143
+ WebMock.reset!
144
+ content_type = {'atom' => 'application/atom+xml',
145
+ 'rss' => 'application/rss+xml',
146
+ 'json' => 'application/json',
147
+ 'cjson' => 'application/json'}
148
+
149
+ content_type.each do |format|
150
+ stub_request(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + "data/" + object)
151
+ .with(:query => hash_including({}))
152
+
153
+ ThePlatform::Data.send(service).get(object, 'all',form:format[0])
154
+
155
+ WebMock.should have_requested(:get, ThePlatform.const_get(:SERVICE)[service][:endpoint] + 'data/' + object)
156
+ .with(:query => hash_including({form:format[0]}), :headers => {"Content-Type" => format[1]})
157
+ end
64
158
  end
65
159
  end
66
160
 
@@ -2,6 +2,11 @@ require 'spec_helper'
2
2
 
3
3
  describe ThePlatform::Identity do
4
4
 
5
+ # clear webmock stubs before each test
6
+ before(:each) do
7
+ WebMock.reset!
8
+ end
9
+
5
10
  describe 'default attributes' do
6
11
 
7
12
  it 'should include HTTParty methods' do
@@ -12,50 +17,122 @@ describe ThePlatform::Identity do
12
17
 
13
18
  describe "#token" do
14
19
 
15
- it "should return a 200 response" do
16
- ThePlatform::Identity.token(form:'json', schema:'1.0').code.should == 200
20
+ # stub "valid credentials" identity call
21
+ before(:each) do
22
+ # reset anything from previous tests
23
+ WebMock.reset!
24
+
25
+ #setup a normal response
26
+ @duration = ""
27
+ @idleTimeout = ""
28
+ @userName = "user"
29
+ @password = "secret"
30
+ @form = "json"
31
+ @schema = "1.0"
32
+
33
+ @signInURL = ThePlatform::IDENTITY + 'signIn'
34
+
35
+ @query = { "form" => @form,
36
+ "password" => @password,
37
+ "schema" => @schema,
38
+ "username" => @userName,
39
+ "_duration" => @duration }
40
+
41
+ stub_request(:get, @signInURL).with(:query => @query).to_return(:status => 200, :body => {}, :headers => {})
42
+ end
43
+
44
+ it "should call signIn endpoint with parameters" do
45
+ ThePlatform::Identity.token(username: @userName, password: @password, form: @form, schema: @schema, _duration: @duration)
46
+ WebMock.should have_requested(:get, @signInURL)
47
+ .with(:query => hash_including({"username" => @userName,
48
+ "password" => @password,
49
+ "form" => @form,
50
+ "schema" => @schema,
51
+ "_duration" => @duration}))
17
52
  end
18
53
 
19
- it 'should return BAD REQUEST if no schema or form present' do
20
- ThePlatform::Identity.token(test:1, test:2).code.should == 422
54
+ it "should return a HTTParty::Response from the web request" do
55
+ ThePlatform::Identity.token(username: @userName, password: @password, form: @form, schema: @schema, _duration: @duration).class.should == HTTParty::Response
21
56
  end
22
57
 
23
- it 'should have a valid return body' do
24
- ThePlatform::Identity.token(form:'json', schema:'1.0')['description'].should == "No authentication header."
25
- end
58
+ it "should bubble up any exception" do
59
+ stub_request(:any, @signInURL)
60
+ .with(:query => hash_including({}))
61
+ .to_raise(Exception)
26
62
 
27
- it 'should not authenticate an invalid user' do
28
- ThePlatform::Identity.token(form:'json', schema:'1.0', username:'test', password:'pass')['description'].should == "Could not authenticate user test."
63
+ expect {ThePlatform::Identity.token(username: @userName, password: @password, from: @form, schema: @schema)}.to raise_error(Exception)
29
64
  end
65
+
30
66
  end
31
67
 
32
68
  describe "#invalidate!" do
69
+ before(:all) do
70
+ @signOutURL = ThePlatform::IDENTITY + 'signOut'
71
+ end
72
+
73
+ before(:each) do
74
+ WebMock.reset!
75
+
76
+ stub_request(:any, @signOutURL)
77
+ .with(:query => hash_including({}))
78
+ .to_return(:status => 200, :body => {}, :headers => {})
79
+ end
80
+
81
+ it "should call signOut endpoint with parameters" do
82
+ @token = 'foo'
83
+
84
+ ThePlatform::Identity.invalidate!(@token)
33
85
 
34
- it 'should return a 200 response' do
35
- ThePlatform::Identity.invalidate!('omg_i_haz_a_tokenz', form:'json', schema:'1.0').code.should == 200
86
+ WebMock.should have_requested(:get, @signOutURL)
87
+ .with(:query => hash_including({"_token" => @token}))
36
88
  end
37
89
 
38
- it 'should have a valid return body' do
39
- ThePlatform::Identity.invalidate!('omg_i_haz_a_tokenz', form:'json', schema:'1.0').should have_key 'signOutResponse'
90
+ it "should return a HTTParty::Response from the web request" do
91
+ ThePlatform::Identity.invalidate!(@token).class.should == HTTParty::Response
92
+ end
93
+
94
+ it "should bubble up any exception" do
95
+ stub_request(:any, @signOutURL)
96
+ .with(:query => hash_including({}))
97
+ .to_raise(Exception)
98
+
99
+ expect {ThePlatform::Identity.invalidate!(@token)}.to raise_error(Exception)
40
100
  end
41
101
 
42
102
  end
43
103
 
44
104
  describe "#count" do
105
+ before(:all) do
106
+ @getTokenCountURL = ThePlatform::IDENTITY + 'getTokenCount'
107
+ end
108
+
109
+ before(:each) do
110
+ WebMock.reset!
45
111
 
46
- it "should return a 200 response" do
47
- ThePlatform::Identity.count(form:'json', schema:'1.0').code.should == 200
112
+ stub_request(:any, @getTokenCountURL)
113
+ .with(:query => hash_including({}))
114
+ .to_return(:status => 200, :body => {}, :headers => {})
48
115
  end
49
116
 
50
- it 'should return a BAD REQUEST if no schema or form are present' do
51
- ThePlatform::Identity.count(test:1, test:2).code.should == 422
117
+ it "should call getTokenCount endpoint with parameters" do
118
+ ThePlatform::Identity.count(foo: 'bar')
119
+
120
+ WebMock.should have_requested(:get, @getTokenCountURL)
121
+ .with(:query => hash_including({"foo" => 'bar'}))
52
122
  end
53
123
 
54
- it 'should fail if auth is invalid' do
55
- ThePlatform::Identity.count(form:'json', schema:'1.0', username:'test', password:'pass')['description'].should == "Could not authenticate user test."
124
+ it "should return a HTTParty::Response from the web request" do
125
+ ThePlatform::Identity.count({}).class.should == HTTParty::Response
126
+ end
127
+
128
+ it "should bubble up any exception" do
129
+ stub_request(:any, @getTokenCountURL)
130
+ .with(:query => hash_including({}))
131
+ .to_raise(Exception)
132
+
133
+ expect {ThePlatform::Identity.count(foo:'bar')}.to raise_error(Exception)
56
134
  end
57
135
 
58
136
  end
59
137
 
60
138
  end
61
-
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,26 @@
1
1
  require 'rubygems'
2
2
  require 'rspec'
3
+ require 'webmock/rspec'
4
+ require 'json'
5
+
6
+ RSpec.configure do |config|
7
+ config.order = 'random'
8
+ end
9
+
10
+ if ENV["COVERAGE"] == 'true'
11
+ require 'simplecov'
12
+
13
+ # add legacy rcov output (so Jenkins/Sonor play well)
14
+ require 'simplecov-rcov'
15
+ class SimpleCov::Formatter::MergedFormatter
16
+ def format(result)
17
+ SimpleCov::Formatter::HTMLFormatter.new.format(result)
18
+ SimpleCov::Formatter::RcovFormatter.new.format(result)
19
+ end
20
+ end
21
+ SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
22
+
23
+ SimpleCov.start
24
+ end
3
25
 
4
26
  require File.expand_path("../../lib/theplatform", __FILE__)
data/theplatform.gemspec CHANGED
@@ -1,11 +1,10 @@
1
- $:.push File.expand_path("../lib", __FILE__)
2
- require './lib/theplatform.rb'
1
+ version = File.read(File.expand_path("../tpdata_version",__FILE__)).strip
3
2
 
4
3
  Gem::Specification.new do |s|
5
4
  s.name = 'tpdata'
6
- s.version = ThePlatform::VERSION
5
+ s.version = version
7
6
  s.date = '2012-10-03'
8
- s.authors = ['Ben Woodall']
7
+ s.authors = ['Ben Woodall, Bryan Stenson']
9
8
  s.email = 'mail@benwoodall.com'
10
9
  s.homepage = 'http://github.com/benwoody/tpdata'
11
10
 
@@ -18,8 +17,12 @@ Gem::Specification.new do |s|
18
17
 
19
18
  s.extra_rdoc_files = ["README.md"]
20
19
 
21
- s.add_runtime_dependency 'httparty', "~> 0.9.0"
20
+ s.add_dependency 'httparty', "~> 0.9.0"
22
21
  s.add_development_dependency 'rake'
23
22
  s.add_development_dependency 'rspec'
24
23
  s.add_development_dependency 'yard'
24
+ s.add_development_dependency 'webmock'
25
+ s.add_development_dependency 'simplecov'
26
+ s.add_development_dependency 'simplecov-rcov'
27
+
25
28
  end
data/tpdata_version ADDED
@@ -0,0 +1 @@
1
+ 1.1.0
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tpdata
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - Ben Woodall
8
+ - Ben Woodall, Bryan Stenson
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
@@ -13,7 +13,7 @@ date: 2012-10-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &81513660 !ruby/object:Gem::Requirement
16
+ requirement: &84022590 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *81513660
24
+ version_requirements: *84022590
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &81512720 !ruby/object:Gem::Requirement
27
+ requirement: &84022240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *81512720
35
+ version_requirements: *84022240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &81509950 !ruby/object:Gem::Requirement
38
+ requirement: &84021660 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *81509950
46
+ version_requirements: *84021660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &81509500 !ruby/object:Gem::Requirement
49
+ requirement: &84021210 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,40 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *81509500
57
+ version_requirements: *84021210
58
+ - !ruby/object:Gem::Dependency
59
+ name: webmock
60
+ requirement: &84020820 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *84020820
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov
71
+ requirement: &84044910 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *84044910
80
+ - !ruby/object:Gem::Dependency
81
+ name: simplecov-rcov
82
+ requirement: &84043620 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *84043620
58
91
  description: Tpdata gem is a wrapper for the RESTful interface for thePlatform for
59
92
  Media's Data Services.
60
93
  email: mail@benwoodall.com
@@ -63,6 +96,7 @@ extensions: []
63
96
  extra_rdoc_files:
64
97
  - README.md
65
98
  files:
99
+ - .gitignore
66
100
  - Gemfile
67
101
  - Manifest.txt
68
102
  - README.md
@@ -78,6 +112,7 @@ files:
78
112
  - spec/lib/identity_spec.rb
79
113
  - spec/spec_helper.rb
80
114
  - theplatform.gemspec
115
+ - tpdata_version
81
116
  homepage: http://github.com/benwoody/tpdata
82
117
  licenses: []
83
118
  post_install_message: