odata 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f1ee4f9637afcfe8f3b9e088e14056e3bff1a90a
4
- data.tar.gz: b1821379f53b957eb494930b0700ddaa99f20004
3
+ metadata.gz: 0edaeaf91c4af10ef3abbaec91c7694d889b0bc9
4
+ data.tar.gz: 5cf9ba52511908d11fa2a7c091a1ee6ea335dc39
5
5
  SHA512:
6
- metadata.gz: 1844be486c58326b07a7415c1e9dd0d98a92eb505459f678ff7adacfa5812331a488885989f6dc30b37aa2552103a4dec39a76091e6be3850d53809addf99f3b
7
- data.tar.gz: 6a86353c36caf8aeb84aff2711b3967247c8c0d6a91fe2036c42a644b41114a3d8d53cc362a89633dfad31df9580d0395403f563708d0b31ffaee303472cb3dc
6
+ metadata.gz: 7b898de7fad69b94bb1f3aa6aaaae8ed14089a38bd410f8e83e0984f34dad689c2fec27d38ea87fcdd656f13acff48a57491922b45336a69244d266200fb9adc
7
+ data.tar.gz: 73ac706f0686f81c9f8b61066b2feb8ae29824dc23946303167e7acaa00481b1d18a1c94a804e0c28b245fd144a76bb3297f761bebd4125f8ea8e2f5dfae7808
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.3.0
4
+
5
+ * Removed dependency on ActiveSupport
6
+
7
+ ## 0.2.0
8
+
9
+ * Added query interface for [System Query Options](http://www.odata.org/documentation/odata-version-3-0/odata-version-3-0-core-protocol#queryingcollections)
10
+ * Refactored internal uses of System Query Options
11
+
3
12
  ## 0.1.0
4
13
 
5
14
  * Core read/write behavior for OData v1-3
data/lib/odata.rb CHANGED
@@ -5,9 +5,9 @@ require 'date'
5
5
  require 'nokogiri'
6
6
  require 'typhoeus'
7
7
 
8
- require 'active_support'
9
- require 'active_support/core_ext'
10
- require 'active_support/concern'
8
+ # require 'active_support'
9
+ # require 'active_support/core_ext'
10
+ # require 'active_support/concern'
11
11
 
12
12
  require 'odata/version'
13
13
  require 'odata/property'
data/lib/odata/entity.rb CHANGED
@@ -56,7 +56,7 @@ module OData
56
56
  value = property_xml.content
57
57
  end
58
58
  klass_name = value_type.gsub(/^Edm\./, '')
59
- property = "OData::Properties::#{klass_name}".constantize.new(property_name, value)
59
+ property = Kernel.const_get("OData::Properties::#{klass_name}").new(property_name, value)
60
60
  set_property(property_name, property)
61
61
  end
62
62
 
@@ -65,7 +65,7 @@ module OData
65
65
  property_name = service.get_title_property_name(name)
66
66
  value_type = service.get_property_type(name, property_name)
67
67
  klass_name = value_type.gsub(/^Edm\./, '')
68
- property = "OData::Properties::#{klass_name}".constantize.new(property_name, title_value)
68
+ property = Kernel.const_get("OData::Properties::#{klass_name}").new(property_name, title_value)
69
69
  set_property(property_name, property)
70
70
  end
71
71
 
@@ -74,7 +74,7 @@ module OData
74
74
  property_name = service.get_summary_property_name(name)
75
75
  value_type = service.get_property_type(name, property_name)
76
76
  klass_name = value_type.gsub(/^Edm\./, '')
77
- property = "OData::Properties::#{klass_name}".constantize.new(property_name, summary_value)
77
+ property = Kernel.const_get("OData::Properties::#{klass_name}").new(property_name, summary_value)
78
78
  set_property(property_name, property)
79
79
  end
80
80
  end
@@ -3,28 +3,44 @@ module OData
3
3
  attr_reader :name
4
4
  attr_accessor :value
5
5
 
6
+ # Default intialization for a property with a name, value and options.
7
+ # @param name [to_s]
8
+ # @param value [to_s,nil]
9
+ # @param options [Hash]
6
10
  def initialize(name, value, options = {})
7
11
  @name = name.to_s
8
12
  @value = value.nil? ? nil : value.to_s
9
13
  @options = default_options.merge(options)
10
14
  end
11
15
 
16
+ # Abstract implementation, should return property type, based on
17
+ # OData::Service metadata in proper implementation.
18
+ # @raise NotImplementedError
12
19
  def type
13
20
  raise NotImplementedError
14
21
  end
15
22
 
23
+ # Provides for value-based equality checking.
24
+ # @param other [value] object for comparison
25
+ # @return [Boolean]
16
26
  def ==(other)
17
27
  self.value == other.value
18
28
  end
19
29
 
30
+ # Whether the property permits a nil value.
31
+ # @return [Boolean]
20
32
  def allows_nil?
21
33
  @allows_nil ||= options[:allows_nil]
22
34
  end
23
35
 
36
+ # The configured concurrency mode for the property.
37
+ # @return [String]
24
38
  def concurrency_mode
25
39
  @concurrecy_mode ||= options[:concurrency_mode]
26
40
  end
27
41
 
42
+ # Value to be used in XML.
43
+ # @return [String]
28
44
  def xml_value
29
45
  @value
30
46
  end
data/lib/odata/service.rb CHANGED
@@ -138,10 +138,19 @@ module OData
138
138
  metadata.xpath("//EntityType[@Name='#{entity_name}']/Property[@FC_TargetPath='SyndicationSummary']").first.attributes['Name'].value
139
139
  end
140
140
 
141
+ # Get the primary key for the supplied Entity.
142
+ #
143
+ # @param entity_name [to_s]
144
+ # @return [String]
141
145
  def primary_key_for(entity_name)
142
146
  metadata.xpath("//EntityType[@Name='#{entity_name}']/Key/PropertyRef").first.attributes['Name'].value
143
147
  end
144
148
 
149
+ # Get the list of properties and their various options for the supplied
150
+ # Entity name.
151
+ #
152
+ # @param entity_name [to_s]
153
+ # @return [Hash]
145
154
  def properties_for(entity_name)
146
155
  type_definition = metadata.xpath("//EntityType[@Name='#{entity_name}']").first
147
156
  raise ArgumentError, "Unknown EntityType: #{entity_name}" if type_definition.nil?
@@ -152,7 +161,7 @@ module OData
152
161
  property_options = {}
153
162
  property_options[:allows_nil] = false if property_xml.attributes['Nullable'] == 'false'
154
163
  klass_name = value_type.gsub(/^Edm\./, '')
155
- properties_to_return[property_name] = "OData::Properties::#{klass_name}".constantize.new(property_name, nil, property_options)
164
+ properties_to_return[property_name] = Kernel.const_get("OData::Properties::#{klass_name}").new(property_name, nil, property_options)
156
165
  end
157
166
  properties_to_return
158
167
  end
data/lib/odata/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OData
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
data/odata.gemspec CHANGED
@@ -28,6 +28,5 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency 'backports', '~> 3.6.0'
30
30
  spec.add_dependency 'nokogiri', '~> 1.6.2'
31
- spec.add_dependency 'activesupport', '>= 3.0.0'
32
31
  spec.add_dependency 'typhoeus', '~> 0.6.8'
33
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: odata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Thompson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-13 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,20 +136,6 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 1.6.2
139
- - !ruby/object:Gem::Dependency
140
- name: activesupport
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: 3.0.0
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: 3.0.0
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: typhoeus
155
141
  requirement: !ruby/object:Gem::Requirement