foxy_sync 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -36,6 +36,12 @@ module FoxySync::Api
36
36
  :customer_password_salt => salt
37
37
  )
38
38
  end
39
- end
40
39
 
40
+
41
+ #
42
+ # Returns true if FoxyCart has a record of this customer, false otherwise
43
+ def found?
44
+ !(api_response.message =~ /Customer Found/i).nil?
45
+ end
46
+ end
41
47
  end
@@ -18,7 +18,7 @@ module FoxySync
18
18
  encrypted = params['FoxyData']
19
19
  rc4 = RC4.new FoxySync.api_key
20
20
  xml = rc4.decrypt CGI::unescape(encrypted)
21
- FoxySync::Xml::Document.new xml
21
+ FoxySync::Xml::Transaction.new xml
22
22
  end
23
23
 
24
24
 
@@ -0,0 +1,35 @@
1
+ module FoxySync::Xml
2
+ #
3
+ # Encapsulates FoxyCart's transaction XML datafeed
4
+ class Transaction < Document
5
+ #
6
+ # Returns an +Array+ of the +TransactionDetail+s in this +Transaction+
7
+ def details
8
+ unless @details
9
+ @details = []
10
+
11
+ node.xpath('//transaction_details').each do |detail|
12
+ @details << TransactionDetail.new(detail)
13
+ end
14
+ end
15
+
16
+ @details
17
+ end
18
+
19
+
20
+ #
21
+ # Returns custom fields in a 'name' => 'value' +Hash+
22
+ def custom_fields
23
+ fields = {}
24
+ fields_xml = node.xpath '//custom_field'
25
+
26
+ fields_xml.each do |node|
27
+ name = node.at_css('custom_field_name').content.strip
28
+ value = node.at_css('custom_field_value').content.strip
29
+ fields[name] = value
30
+ end
31
+
32
+ fields
33
+ end
34
+ end
35
+ end
@@ -3,22 +3,6 @@ module FoxySync::Xml
3
3
  # Provides methods to easily query the transaction_detail
4
4
  # elements found in a FoxyCart transaction XML datafeed
5
5
  class TransactionDetail < Base
6
-
7
- #
8
- # Returns an +Array+ of the +TransactionDetail+s in +xml_base+
9
- # [_xml_base_]
10
- # A +FoxySync::Xml::Base+ that has a transaction_details element
11
- def self.all(xml_base)
12
- transactions = []
13
-
14
- xml_base.node.xpath('//transaction_details').each do |detail|
15
- transactions << new(detail)
16
- end
17
-
18
- transactions
19
- end
20
-
21
-
22
6
  #
23
7
  # Returns custom product options in a 'name' => 'value' +Hash+
24
8
  def custom_product_options
@@ -33,7 +17,5 @@ module FoxySync::Xml
33
17
 
34
18
  options
35
19
  end
36
-
37
20
  end
38
-
39
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foxy_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-17 00:00:00.000000000 Z
12
+ date: 2013-03-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -81,6 +81,8 @@ files:
81
81
  Li9saWIvZm94eV9zeW5jL3htbC9iYXNlLnJi
82
82
  - !binary |-
83
83
  Li9saWIvZm94eV9zeW5jL3htbC9kb2N1bWVudC5yYg==
84
+ - !binary |-
85
+ Li9saWIvZm94eV9zeW5jL3htbC90cmFuc2FjdGlvbi5yYg==
84
86
  - !binary |-
85
87
  Li9saWIvZm94eV9zeW5jL3htbC90cmFuc2FjdGlvbl9kZXRhaWwucmI=
86
88
  - !binary |-