display_words 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm 1.8.7-p330@display_words
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,37 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ display_words (0.0.1)
5
+ httparty (~> 0.7.7)
6
+ json_pure (~> 1.5)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ addressable (2.2.5)
12
+ crack (0.1.8)
13
+ diff-lcs (1.1.2)
14
+ httparty (0.7.7)
15
+ crack (= 0.1.8)
16
+ json_pure (1.5.1)
17
+ rake (0.8.7)
18
+ rspec (2.5.0)
19
+ rspec-core (~> 2.5.0)
20
+ rspec-expectations (~> 2.5.0)
21
+ rspec-mocks (~> 2.5.0)
22
+ rspec-core (2.5.2)
23
+ rspec-expectations (2.5.0)
24
+ diff-lcs (~> 1.1.2)
25
+ rspec-mocks (2.5.0)
26
+ webmock (1.6.2)
27
+ addressable (>= 2.2.2)
28
+ crack (>= 0.1.7)
29
+
30
+ PLATFORMS
31
+ ruby
32
+
33
+ DEPENDENCIES
34
+ display_words!
35
+ rake (~> 0.8)
36
+ rspec (~> 2.5)
37
+ webmock (~> 1.6)
data/README ADDED
@@ -0,0 +1,5 @@
1
+ Example Use:
2
+
3
+ client = DisplayWords.client(:username => 'someuser', :password => 'somepass', :domain => 'http://somedomain.com')
4
+ inventory_sources = client.inventory_sources
5
+ inventory_source = client.inventory_source(1)
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/display_words/version', __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.add_development_dependency('rake', '~> 0.8')
6
+ s.add_development_dependency('rspec', '~> 2.5')
7
+ s.add_development_dependency('webmock', '~> 1.6')
8
+ s.add_runtime_dependency('json_pure', '~> 1.5')
9
+ s.add_runtime_dependency('httparty', '~> 0.7.7')
10
+ s.authors = ["Will Watson"]
11
+ s.description = %q{A Ruby wrapper for the DisplayWords API}
12
+ s.email = ['will@ackmanndickenson.com']
13
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
14
+ s.files = `git ls-files`.split("\n")
15
+ s.homepage = 'https://github.com/ackmann-dickenson/display_words'
16
+ s.name = 'display_words'
17
+ s.platform = Gem::Platform::RUBY
18
+ s.require_paths = ['lib']
19
+ s.required_rubygems_version = Gem::Requirement.new('>= 1.3.6') if s.respond_to? :required_rubygems_version=
20
+ s.rubyforge_project = s.name
21
+ s.summary = %q{Ruby wrapper for the DisplayWords API}
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.version = DisplayWords::VERSION.dup
24
+ end
@@ -0,0 +1,24 @@
1
+ require 'json'
2
+ require 'httparty'
3
+
4
+ require File.expand_path('../display_words/configuration', __FILE__)#can this not use expand_path?
5
+ require File.expand_path('../display_words/api', __FILE__)
6
+ require File.expand_path('../display_words/client', __FILE__)
7
+
8
+ module DisplayWords
9
+ extend Configuration
10
+
11
+ def self.client(options = {})
12
+ DisplayWords::Client.new(options)
13
+ end
14
+
15
+ # Delegate to DisplayWords::Client
16
+ # def self.method_missing(method, *args, &block)
17
+ # return super unless client.respond_to?(method)
18
+ # client.send(method, *args, &block)
19
+ # end
20
+ #
21
+ # def self.respond_to?(method, include_private = false)
22
+ # client.respond_to?(method, include_private) || super(method, include_private)
23
+ # end
24
+ end
@@ -0,0 +1,18 @@
1
+ require File.expand_path('../request', __FILE__)
2
+
3
+ module DisplayWords
4
+ class API
5
+ attr_accessor *Configuration::VALID_OPTIONS_KEYS
6
+
7
+ include DisplayWords::Request
8
+
9
+ def initialize(options={})
10
+ self.class.base_uri options[:domain]
11
+
12
+ options = DisplayWords.options.merge(options)
13
+ Configuration::VALID_OPTIONS_KEYS.each do |key|
14
+ send("#{key}=", options[key])
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,42 @@
1
+ module DisplayWords
2
+ module Request
3
+ module Authentication
4
+ ENDPOINT = '/auth'
5
+
6
+ attr_accessor :token, :token_expire
7
+
8
+ def authenticate(username, password)
9
+ options = authentication_options(username, password)
10
+
11
+ response = post(ENDPOINT, options)
12
+
13
+ @token_expire = Time.now + (2 * 60 * 60) #Token expires two hours from when it was given
14
+ @token = response['token']
15
+ end
16
+
17
+ def expired_token?
18
+ token_expire <= Time.now
19
+ end
20
+
21
+ def authentication_needed?
22
+ !token || expired_token?
23
+ end
24
+
25
+ def authentication_options(username, password)
26
+ credentials = {
27
+ :auth => {
28
+ :username => username,
29
+ :password => password
30
+ }
31
+ }
32
+
33
+ {
34
+ :body => credentials.to_json,
35
+ :headers => {
36
+ "content_type" => "json"
37
+ }
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,9 @@
1
+ module DisplayWords
2
+ class Client < API
3
+ DEFAULT_RESULT_LIMIT = 100
4
+
5
+ require File.expand_path('../client/inventory_source', __FILE__)
6
+
7
+ include DisplayWords::Client::InventorySource
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module DisplayWords
2
+ class Client
3
+ module InventorySource
4
+ def inventory_source(id)
5
+ response = get("/inventory-source/?id=#{id}")
6
+ response['inventory-source']
7
+ end
8
+
9
+ def inventory_sources(start = 0, num = Client::DEFAULT_RESULT_LIMIT)
10
+ response = get("/inventory-source?start_element=#{start}&num_elements=#{num}")
11
+ response['inventory-sources']
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,36 @@
1
+ module DisplayWords
2
+ module Configuration
3
+ VALID_OPTIONS_KEYS = [:username, :password, :domain, :format]
4
+ VALID_FORMATS = [:json]
5
+
6
+ attr_accessor *VALID_OPTIONS_KEYS
7
+
8
+ DEFAULT_DOMAIN = 'http://hb.sand-08.adnxs.net/'
9
+ DEFAULT_FORMAT = 'json'
10
+
11
+ # When this module is extended, set all configuration options to their default values
12
+ def self.extended(base)
13
+ base.reset
14
+ self
15
+ end
16
+
17
+ # Convenience method to allow configuration options to be set in a block
18
+ def configure
19
+ yield self
20
+ end
21
+
22
+ # Create a hash of options and their values
23
+ def options
24
+ options = {}
25
+ VALID_OPTIONS_KEYS.each{|k| options[k] = send(k) }
26
+ options
27
+ end
28
+
29
+ # Reset all configuration options to defaults
30
+ def reset
31
+ self.domain = DEFAULT_DOMAIN
32
+ self.format = DEFAULT_FORMAT
33
+ self
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,43 @@
1
+ require File.expand_path('../authentication', __FILE__)
2
+
3
+ module DisplayWords
4
+ module Request
5
+ def self.included(base)
6
+ base.class_eval do
7
+ include HTTParty
8
+ include Authentication
9
+ end
10
+ end
11
+
12
+ def get(path, options = {})
13
+ request(:get, path, options)
14
+ end
15
+
16
+ def post(path, options = {})
17
+ request(:post, path, options)
18
+ end
19
+
20
+ private
21
+
22
+ def request(method, path, options)
23
+ authenticate(@username, @password) if authentication_needed? && path != Authentication::ENDPOINT
24
+
25
+ options[:headers] ||= {}
26
+ options[:headers]['authorization'] = token if token
27
+ response = case method
28
+ when :post
29
+ self.class.post(
30
+ path,
31
+ options
32
+ )
33
+ when :get
34
+ self.class.get(
35
+ path,
36
+ options
37
+ )
38
+ end
39
+
40
+ response['response']
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,4 @@
1
+ module DisplayWords
2
+ # The version of the gem
3
+ VERSION = '0.0.1'.freeze unless defined?(::DisplayWords::VERSION)
4
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe DisplayWords::API do
4
+ before do
5
+ @keys = DisplayWords::Configuration::VALID_OPTIONS_KEYS
6
+ end
7
+
8
+ context "with module configuration" do
9
+ before do
10
+ DisplayWords.configure do |config|
11
+ @keys.each do |key|
12
+ config.send("#{key}=", key)
13
+ end
14
+ end
15
+ end
16
+
17
+ after do
18
+ DisplayWords.reset
19
+ end
20
+
21
+ it "should inherit module configuration" do
22
+ api = DisplayWords::API.new
23
+ @keys.each do |key|
24
+ api.send(key).should == key
25
+ end
26
+ end
27
+
28
+ context "with class configuration" do
29
+
30
+ before do
31
+ @configuration = {
32
+ :username => 'U',
33
+ :password => 'P',
34
+ :domain => 'http://www.d.com',
35
+ :format => 'json'
36
+ }
37
+ end
38
+
39
+ context "during initialization"
40
+
41
+ it "should override module configuration" do
42
+ api = DisplayWords::API.new(@configuration)
43
+ @keys.each do |key|
44
+ api.send(key).should == @configuration[key]
45
+ end
46
+ end
47
+
48
+ context "after initilization" do
49
+
50
+ it "should override module configuration after initialization" do
51
+ api = DisplayWords::API.new
52
+ @configuration.each do |key, value|
53
+ api.send("#{key}=", value)
54
+ end
55
+ @keys.each do |key|
56
+ api.send(key).should == @configuration[key]
57
+ end
58
+ end
59
+
60
+ it "should have set the base_uri" do
61
+
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,93 @@
1
+ require 'spec/spec_helper'
2
+
3
+ describe DisplayWords::Client do
4
+ DisplayWords::Configuration::VALID_FORMATS.each do |format|
5
+ context ".new" do
6
+ before do
7
+ @client = DisplayWords::Client.new(:username => 'u', :password => 'p', :domain => "http://hb.sand-08.adnxs.net/")
8
+ @client.stub(:authentication_needed?).and_return(false)
9
+ @client.stub(:token).and_return("abcdefg")
10
+ end
11
+
12
+ describe ".inventory_sources" do
13
+ before do
14
+ @client.stub(:get).
15
+ with("/inventory-source?start_element=0&num_elements=100").and_return(fixture_json("inventory_sources.json")['response'])
16
+ end
17
+
18
+ it "should get the correct resource" do
19
+ @client.should_receive(:get).with("/inventory-source?start_element=0&num_elements=100")
20
+ @client.inventory_sources
21
+ end
22
+
23
+ it "should return inventory sources" do
24
+ inventory_sources = @client.inventory_sources
25
+ inventory_sources.should be_an Array
26
+ inventory_sources.first['name'].should == "Premium Nature 1"
27
+ end
28
+ end
29
+
30
+ # describe ".direct_messages_sent" do
31
+ #
32
+ # before do
33
+ # stub_get("direct_messages/sent.#{format}").
34
+ # to_return(:body => fixture("direct_messages.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
35
+ # end
36
+ #
37
+ # it "should get the correct resource" do
38
+ # @client.direct_messages_sent
39
+ # a_get("direct_messages/sent.#{format}").
40
+ # should have_been_made
41
+ # end
42
+ #
43
+ # it "should return the 20 most recent direct messages sent by the authenticating user" do
44
+ # direct_messages = @client.direct_messages_sent
45
+ # direct_messages.should be_an Array
46
+ # direct_messages.first.sender.name.should == "Erik Michaels-Ober"
47
+ # end
48
+ #
49
+ # end
50
+ #
51
+ # describe ".direct_message_create" do
52
+ #
53
+ # before do
54
+ # stub_post("direct_messages/new.#{format}").
55
+ # with(:body => {:screen_name => "pengwynn", :text => "Creating a fixture for the DisplayWords gem"}).
56
+ # to_return(:body => fixture("direct_message.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
57
+ # end
58
+ #
59
+ # it "should get the correct resource" do
60
+ # @client.direct_message_create("pengwynn", "Creating a fixture for the DisplayWords gem")
61
+ # a_post("direct_messages/new.#{format}").
62
+ # with(:body => {:screen_name => "pengwynn", :text => "Creating a fixture for the DisplayWords gem"}).
63
+ # should have_been_made
64
+ # end
65
+ #
66
+ # it "should return the sent message" do
67
+ # direct_message = @client.direct_message_create("pengwynn", "Creating a fixture for the DisplayWords gem")
68
+ # direct_message.text.should == "Creating a fixture for the DisplayWords gem"
69
+ # end
70
+ #
71
+ # end
72
+ #
73
+ # describe ".direct_message_destroy" do
74
+ #
75
+ # before do
76
+ # stub_delete("direct_messages/destroy/1825785544.#{format}").
77
+ # to_return(:body => fixture("direct_message.#{format}"), :headers => {:content_type => "application/#{format}; charset=utf-8"})
78
+ # end
79
+ #
80
+ # it "should get the correct resource" do
81
+ # @client.direct_message_destroy(1825785544)
82
+ # a_delete("direct_messages/destroy/1825785544.#{format}").
83
+ # should have_been_made
84
+ # end
85
+ #
86
+ # it "should return the deleted message" do
87
+ # direct_message = @client.direct_message_destroy(1825785544)
88
+ # direct_message.text.should == "Creating a fixture for the DisplayWords gem"
89
+ # end
90
+ # end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe DisplayWords do
4
+ after do
5
+ DisplayWords.reset
6
+ end
7
+
8
+ describe ".client" do
9
+ it "should be a DisplayWords::Client" do
10
+ DisplayWords.client.should be_a DisplayWords::Client
11
+ end
12
+ end
13
+
14
+ describe ".domain" do
15
+ it "should return the default domain" do
16
+ DisplayWords.domain.should == DisplayWords::Configuration::DEFAULT_DOMAIN
17
+ end
18
+ end
19
+
20
+ describe ".domain=" do
21
+ it "should set the endpoint" do
22
+ DisplayWords.domain = 'https://api.displaywords.com/'
23
+ DisplayWords.domain.should == 'https://api.displaywords.com/'
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,6 @@
1
+ {
2
+ "response": {
3
+ "status": "OK",
4
+ "token": "abcdefghijklmnop"
5
+ }
6
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "response": {
3
+ "status": "OK",
4
+ "inventory-source": {
5
+ "id": 14,
6
+ "name": "MyYearbook",
7
+ "description": "",
8
+ "aggregator": "MyYearbook",
9
+ "url": "myyearbook.com",
10
+ "integration_type": "premium_first",
11
+ "monthly_volume": 464493100,
12
+ "monthly_uniques": 5638924,
13
+ "daily_volume": 1123983,
14
+ "daily_uniques": 659323,
15
+ "member_id": null,
16
+ "class": "class_3",
17
+ "status": "reviewed",
18
+ "created_on": "2009-11-02 05:00:00",
19
+ "discrepancy_pct": null,
20
+ "curated_type": "appnexus",
21
+ "inventory_exposure": "public",
22
+ "last_modified": "2010-10-15 00:11:43",
23
+ "ecp": 0.91957,
24
+ "age_coverage": 0.994941,
25
+ "gender_coverage": 0.994845,
26
+ "expose_domains": true
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "response":{
3
+ "status":"OK",
4
+ "inventory-sources":[
5
+ {
6
+ "id":2,
7
+ "name":"Premium Nature 1",
8
+ "description":"",
9
+ "aggregator":"AdMeld",
10
+ "url":"",
11
+ "integration_type":"remnant_first",
12
+ "monthly_volume":0,
13
+ "monthly_uniques":0,
14
+ "daily_volume":0,
15
+ "daily_uniques":0,
16
+ "member_id":null,
17
+ "class":"class_3",
18
+ "status":"pending",
19
+ "created_on":"2009-11-02 05:00:00",
20
+ "discrepancy_pct":5,
21
+ "curated_type":"appnexus",
22
+ "inventory_exposure":"public",
23
+ "last_modified":"2010-04-14 14:35:56",
24
+ "ecp":null
25
+ },
26
+ {
27
+ "id":3,
28
+ "name":"Premium Human Behavior 1",
29
+ "description":"",
30
+ "aggregator":"AdMeld",
31
+ "url":"",
32
+ "integration_type":"remnant_first",
33
+ "monthly_volume":0,
34
+ "monthly_uniques":0,
35
+ "daily_volume":0,
36
+ "daily_uniques":0,
37
+ "member_id":null,
38
+ "class":"class_3",
39
+ "status":"pending",
40
+ "created_on":"2009-11-02 05:00:00",
41
+ "discrepancy_pct":5,
42
+ "curated_type":"appnexus",
43
+ "inventory_exposure":"public",
44
+ "last_modified":"2010-04-14 14:35:56",
45
+ "ecp":null
46
+ },
47
+ {
48
+ "id":4,
49
+ "name":"Premium Health 1",
50
+ "description":"",
51
+ "aggregator":"AdMeld",
52
+ "url":"",
53
+ "integration_type":"remnant_first",
54
+ "monthly_volume":0,
55
+ "monthly_uniques":0,
56
+ "daily_volume":0,
57
+ "daily_uniques":0,
58
+ "member_id":null,
59
+ "class":"class_3",
60
+ "status":"pending",
61
+ "created_on":"2009-11-02 05:00:00",
62
+ "discrepancy_pct":5,
63
+ "curated_type":"appnexus",
64
+ "inventory_exposure":"public",
65
+ "last_modified":"2010-04-14 14:35:56",
66
+ "ecp":null
67
+ }
68
+ ],
69
+ "count":769,
70
+ "start_element":1,
71
+ "num_elments":3
72
+ }
73
+ }
@@ -0,0 +1,53 @@
1
+ require File.expand_path('../../lib/display_words.rb', __FILE__)
2
+ require 'rspec'
3
+ require 'webmock/rspec'
4
+
5
+ RSpec.configure do |config|
6
+ config.include WebMock::API
7
+ end
8
+
9
+ def a_delete(path)
10
+ a_request(:delete, DisplayWords.domain + path)
11
+ end
12
+
13
+ def a_get(path)
14
+ a_request(:get, DisplayWords.domain + path)
15
+ end
16
+
17
+ def a_post(path)
18
+ a_request(:post, DisplayWords.domain + path)
19
+ end
20
+
21
+ def a_put(path)
22
+ a_request(:put, DisplayWords.domain + path)
23
+ end
24
+
25
+ def stub_delete(path)
26
+ stub_request(:delete, DisplayWords.domain + path)
27
+ end
28
+
29
+ def stub_get(path)
30
+ stub_request(:get, DisplayWords.domain + path)
31
+ end
32
+
33
+ def stub_post(path)
34
+
35
+ stub_request(:post, DisplayWords.domain + path)
36
+ end
37
+
38
+ def stub_put(path)
39
+ stub_request(:put, DisplayWords.domain + path)
40
+ end
41
+
42
+ def fixture_path
43
+ File.expand_path("../fixtures", __FILE__)
44
+ end
45
+
46
+ def fixture(file)
47
+ File.new(fixture_path + '/' + file)
48
+ end
49
+
50
+ def fixture_json(file)
51
+ s = File.new(fixture_path + '/' + file).each_line.inject("") {|sum, line| sum += line }
52
+ JSON s
53
+ end
metadata ADDED
@@ -0,0 +1,170 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: display_words
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Will Watson
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-06 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rake
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 27
30
+ segments:
31
+ - 0
32
+ - 8
33
+ version: "0.8"
34
+ type: :development
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 9
45
+ segments:
46
+ - 2
47
+ - 5
48
+ version: "2.5"
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: webmock
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 1
62
+ - 6
63
+ version: "1.6"
64
+ type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: json_pure
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 5
75
+ segments:
76
+ - 1
77
+ - 5
78
+ version: "1.5"
79
+ type: :runtime
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: httparty
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ hash: 13
90
+ segments:
91
+ - 0
92
+ - 7
93
+ - 7
94
+ version: 0.7.7
95
+ type: :runtime
96
+ version_requirements: *id005
97
+ description: A Ruby wrapper for the DisplayWords API
98
+ email:
99
+ - will@ackmanndickenson.com
100
+ executables: []
101
+
102
+ extensions: []
103
+
104
+ extra_rdoc_files: []
105
+
106
+ files:
107
+ - .rvmrc
108
+ - Gemfile
109
+ - Gemfile.lock
110
+ - README
111
+ - display_words.gemspec
112
+ - lib/display_words.rb
113
+ - lib/display_words/api.rb
114
+ - lib/display_words/authentication.rb
115
+ - lib/display_words/client.rb
116
+ - lib/display_words/client/inventory_source.rb
117
+ - lib/display_words/configuration.rb
118
+ - lib/display_words/request.rb
119
+ - lib/display_words/version.rb
120
+ - spec/display_words/api_spec.rb
121
+ - spec/display_words/client/inventory_source_spec.rb
122
+ - spec/display_words_spec.rb
123
+ - spec/fixtures/auth.json
124
+ - spec/fixtures/inventory_source.json
125
+ - spec/fixtures/inventory_sources.json
126
+ - spec/spec_helper.rb
127
+ has_rdoc: true
128
+ homepage: https://github.com/ackmann-dickenson/display_words
129
+ licenses: []
130
+
131
+ post_install_message:
132
+ rdoc_options: []
133
+
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ hash: 3
142
+ segments:
143
+ - 0
144
+ version: "0"
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ hash: 23
151
+ segments:
152
+ - 1
153
+ - 3
154
+ - 6
155
+ version: 1.3.6
156
+ requirements: []
157
+
158
+ rubyforge_project: display_words
159
+ rubygems_version: 1.5.0
160
+ signing_key:
161
+ specification_version: 3
162
+ summary: Ruby wrapper for the DisplayWords API
163
+ test_files:
164
+ - spec/display_words/api_spec.rb
165
+ - spec/display_words/client/inventory_source_spec.rb
166
+ - spec/display_words_spec.rb
167
+ - spec/fixtures/auth.json
168
+ - spec/fixtures/inventory_source.json
169
+ - spec/fixtures/inventory_sources.json
170
+ - spec/spec_helper.rb