chargify_api_ares 1.1.0.pre → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.env +4 -0
  3. data/.gitignore +1 -0
  4. data/.rspec +1 -0
  5. data/.travis.yml +9 -0
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +7 -1
  8. data/HISTORY.md +9 -0
  9. data/README.md +1 -1
  10. data/chargify_api_ares.gemspec +4 -2
  11. data/examples/metadata.rb +58 -0
  12. data/examples/metafields.rb +32 -0
  13. data/lib/chargify_api_ares.rb +4 -2
  14. data/lib/chargify_api_ares/behaviors/inspectable.rb +33 -0
  15. data/lib/chargify_api_ares/behaviors/metadata.rb +61 -0
  16. data/lib/chargify_api_ares/behaviors/metafield.rb +30 -0
  17. data/lib/chargify_api_ares/resources/customer_metafield.rb +14 -1
  18. data/lib/chargify_api_ares/resources/invoice.rb +4 -4
  19. data/lib/chargify_api_ares/resources/subscription.rb +26 -3
  20. data/lib/chargify_api_ares/resources/subscription_metadata.rb +17 -0
  21. data/lib/chargify_api_ares/resources/subscription_metafield.rb +14 -1
  22. data/spec/cassettes/subscription/find.yml +266 -0
  23. data/spec/cassettes/subscription_metadata/create.yml +78 -0
  24. data/spec/cassettes/subscription_metadata/list-after-create.yml +77 -0
  25. data/spec/cassettes/subscription_metadata/list.yml +71 -0
  26. data/spec/factories.rb +1 -0
  27. data/spec/resources/customer_metafield_spec.rb +64 -0
  28. data/spec/resources/customer_spec.rb +4 -4
  29. data/spec/resources/subscription_metadata_spec.rb +54 -0
  30. data/spec/resources/subscription_metafield_spec.rb +63 -0
  31. data/spec/resources/subscription_spec.rb +27 -0
  32. data/spec/spec_helper.rb +14 -2
  33. metadata +78 -31
  34. data/lib/chargify_api_ares/metafield_xml_formatter.rb +0 -10
  35. data/lib/chargify_api_ares/resources/metafield.rb +0 -67
  36. data/spec/spec.opts +0 -2
@@ -1,10 +0,0 @@
1
- module Chargify
2
- class MetafieldXMLFormatter
3
- include ActiveResource::Formats::XmlFormat
4
-
5
- def decode(xml)
6
- ActiveResource::Formats::XmlFormat.decode(xml)['metafields']
7
- end
8
- end
9
- end
10
-
@@ -1,67 +0,0 @@
1
- module Chargify
2
- class Metafield < Base
3
- def on_csv_export?
4
- scope.csv == "1" || scope.csv == true
5
- end
6
-
7
- def on_csv_export=(value)
8
- value = (value == true || value == '1') ? '1' : '0'
9
- scope.csv = value
10
- end
11
-
12
- def on_hosted_pages?
13
- scope.hosted.any?
14
- end
15
-
16
- def on_hosted_pages=(*products)
17
- scope.hosted = Array(products).flatten.map(&:to_s)
18
- end
19
-
20
- def on_hosted_pages
21
- scope.hosted
22
- end
23
-
24
- # Private Interface
25
-
26
- def self.resource; "metafield"; end
27
- def self.element_name; "metafields"; end
28
-
29
- def self.instantiate_record(record, prefix_options = {})
30
- record = record.is_a?(Array) ? record.first : record
31
- new(record, true).tap do |resource|
32
- resource.prefix_options = prefix_options
33
- resource.current_name = resource.name
34
- end
35
- end
36
-
37
- def self.instantiate_collection(collection, prefix_options = {})
38
- collection['metafields'].collect! { |record| instantiate_record(record, prefix_options) }
39
- end
40
-
41
- def load_attributes_from_response(response)
42
- if (response_code_allows_body?(response.code) &&
43
- (response['Content-Length'].nil? || response['Content-Length'] != "0") &&
44
- !response.body.nil? && response.body.strip.size > 0)
45
- attributes = self.class.format.decode(response.body)
46
- attributes = attributes.is_a?(Array) ? attributes.first : attributes
47
-
48
- resource = load(attributes, true)
49
- resource.current_name = resource.name
50
- @persisted = true
51
- end
52
- end
53
-
54
- def reload
55
- raise NotImplementedError, 'Metafields do not support loading of a single record'
56
- end
57
-
58
- def destroy
59
- connection.delete("#{element_path}?current_name=#{URI.encode(current_name)}")
60
- end
61
-
62
- def element_path(id = nil, prefix_options = {}, query_options = nil)
63
- "#{self.class.prefix}#{self.class.element_name}.xml"
64
- end
65
- end
66
- end
67
-
data/spec/spec.opts DELETED
@@ -1,2 +0,0 @@
1
- --colour
2
- --format progress