diff --git a/Gemfile b/Gemfile index f1f2238..0c5b138 100644 --- a/Gemfile +++ b/Gemfile @@ -3,4 +3,4 @@ source "http://rubygems.org" # Specify your gem's dependencies in ruby_odata.gemspec gemspec -gem 'faraday_middleware', github: 'lostisland/faraday_middleware' +gem 'faraday_middleware', github: 'lostisland/faraday_middleware', ref: 'main' diff --git a/lib/ruby_odata/resource.rb b/lib/ruby_odata/resource.rb index 4a0896b..27158d3 100644 --- a/lib/ruby_odata/resource.rb +++ b/lib/ruby_odata/resource.rb @@ -44,7 +44,7 @@ def post(payload, additional_headers={}) @conn.post do |req| req.url url req.headers = (headers || {}).merge(additional_headers) - req.body = prepare_payload payload + req.body = payload end end @@ -52,7 +52,7 @@ def put(payload, additional_headers={}) @conn.put do |req| req.url url req.headers = (headers || {}).merge(additional_headers) - req.body = prepare_payload payload + req.body = payload end end @@ -60,7 +60,7 @@ def patch(payload, additional_headers={}) @conn.patch do |req| req.url url req.headers = (headers || {}).merge(additional_headers) - req.body = prepare_payload payload + req.body = payload end end @@ -143,11 +143,5 @@ def concat_urls(url, suburl) # :nodoc: "#{url}/#{suburl}" end end - - def prepare_payload payload - JSON.generate(payload) - rescue JSON::GeneratorError - payload - end end end diff --git a/lib/ruby_odata/service.rb b/lib/ruby_odata/service.rb index b2f7c45..a4aae3b 100644 --- a/lib/ruby_odata/service.rb +++ b/lib/ruby_odata/service.rb @@ -668,7 +668,6 @@ def build_batch_operation(operation, changeset_num) if operation.kind == "Add" save_uri = "#{@uri}/#{operation.klass_name}" json_klass = operation.klass.to_json(:type => :add) - content << "POST #{save_uri} HTTP/1.1\n" content << accept_headers content << json_klass @@ -794,7 +793,7 @@ def parse_value(content, property_type = nil, property_null = nil) # Parses a value into the proper type based on a specified return type def parse_primative_type(value, return_type) - return value.to_i if return_type == Fixnum + return value.to_i if return_type == Integer return value.to_d if return_type == Float return parse_date(value.to_s) if return_type == Time return value.to_s @@ -803,7 +802,7 @@ def parse_primative_type(value, return_type) # Converts an edm type (string) to a ruby type def edm_to_ruby_type(edm_type) return String if edm_type =~ /Edm.String/ - return Fixnum if edm_type =~ /^Edm.Int/ + return Integer if edm_type =~ /^Edm.Int/ return Float if edm_type =~ /Edm.Decimal/ return Time if edm_type =~ /Edm.DateTime/ return String diff --git a/ruby_odata.gemspec b/ruby_odata.gemspec index e8d1a4b..2e92ee4 100644 --- a/ruby_odata.gemspec +++ b/ruby_odata.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |s| s.add_dependency("addressable", ">= 2.3.4") s.add_dependency("i18n", ">= 0.7.0") s.add_dependency("activesupport", ">= 3.0.0") - s.add_dependency("excon", "~> 0.45.3") + s.add_dependency("excon", ">= 0.45.3") s.add_dependency("faraday_middleware") s.add_dependency("faraday", ">= 0.9.1") s.add_dependency("nokogiri", ">= 1.4.2") @@ -28,13 +28,13 @@ Gem::Specification.new do |s| s.add_development_dependency("rake", ">= 12.0.0") s.add_development_dependency("rspec", ">= 3.4.4") s.add_development_dependency("rspec-its", "~> 1.2.0") - s.add_development_dependency("cucumber", "~> 2.0.0") + s.add_development_dependency("cucumber", "~> 8.0.0") s.add_development_dependency("pickle", "~> 0.5.1") s.add_development_dependency("machinist", "~> 2.0") - s.add_development_dependency("webmock", "~> 1.21.0") - s.add_development_dependency("guard", "~> 2.12.5") - s.add_development_dependency("guard-rspec", "~> 4.5.0") - s.add_development_dependency("guard-cucumber", "~> 1.6.0") + s.add_development_dependency("webmock", "~> 3.0") + s.add_development_dependency("guard", "~> 2.18.0") + s.add_development_dependency("guard-rspec", "~> 4.7.0") + s.add_development_dependency("guard-cucumber", "~> 3.0.0") s.add_development_dependency("vcr", "~> 2.9.3") s.add_development_dependency("simplecov", "~> 0.7.1") s.add_development_dependency("coveralls", "~> 0.6.7") diff --git a/spec/revised_service_spec.rb b/spec/revised_service_spec.rb index 7577166..c6aeda3 100644 --- a/spec/revised_service_spec.rb +++ b/spec/revised_service_spec.rb @@ -194,7 +194,7 @@ module OData end it "should return a single primitive type" do result = subject.FirstCategoryId - result.should be_a Fixnum + result.should be_a Integer result.should eq 1 end end diff --git a/spec/service_spec.rb b/spec/service_spec.rb index 2eaf11d..92b3214 100644 --- a/spec/service_spec.rb +++ b/spec/service_spec.rb @@ -721,7 +721,8 @@ module OData svc.save_changes a_request(:post, "http://test.com/test.svc/Categories(1)/$links/Products"). with(:body => { "uri" => "http://test.com/test.svc/Products(1)" }, - :headers => DEFAULT_HEADERS.merge({'Content-Type' => 'application/json'})).should have_been_made + :headers => DEFAULT_HEADERS.merge({'Content-Type' => 'application/json'}) + ).should have_been_made end it "should add the child to the parent's navigation property on a single_save" do @@ -762,7 +763,7 @@ module OData it "should perform a post with the correct URL and body on a batch_save" do WebMock.should have_requested(:post, "http://test.com/test.svc/$batch").with { |request| request.body.include? "POST http://test.com/test.svc/Categories(1)/$links/Products HTTP/1.1" - request.body.include? '{"uri":"http://test.com/test.svc/Products(1)"}' + request.body.include?({uri: "http://test.com/test.svc/Products(1)"}.to_json) } end context "child is a part of the parent's collection" do