smugmugapi 0.9.5 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data.tar.gz.sig CHANGED
Binary file
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.9.6 / 2007-12-13
2
+
3
+ * Added support in XMLStruct for each_[elem] processing
4
+ * Added support in XMLStruct for elem? processing as boolean checks
5
+
1
6
  == 0.9.5 / 2007-12-09
2
7
 
3
8
  * Added cookie handling to REST calls
@@ -43,7 +43,13 @@ class SmugMugAPI
43
43
  if attrib.is_a?(Fixnum)
44
44
  XMLStruct.new(@xml.elements[attrib], @feed)
45
45
  else
46
- @xml.attributes[XMLStruct.attrib_key(attrib, @feed)]
46
+ attrib = XMLStruct.attrib_key(attrib, @feed)
47
+ if attrib.match(/(.*)\?$/)
48
+ # special processing for boolean (ends with?) lookups
49
+ @xml.attributes[$1] == "1"
50
+ else
51
+ @xml.attributes[attrib]
52
+ end
47
53
  end
48
54
  end
49
55
 
@@ -83,12 +89,24 @@ class SmugMugAPI
83
89
  if @feed && args.first == :entries
84
90
  entries = @xml.get_elements("//entry").map { |e| XMLStruct.new(e, true) }
85
91
  else
86
- path = XMLStruct.attrib_key(args.shift, @feed)
87
- node = @xml.elements[path] rescue nil
88
- if node
89
- XMLStruct.new(node, @feed)
92
+ method = args.first.to_s
93
+ if method.match(/each_(.*)/)
94
+ if block_given?
95
+ node = XMLStruct.attrib_key($1, @feed)
96
+ @xml.elements.each("//#{node}") do |xml|
97
+ yield XMLStruct.new(xml, @feed)
98
+ end
99
+ else
100
+ @xml.get_elements("//{#{node}}").map { |e| XMLStruct.new(e, @feed) }
101
+ end
90
102
  else
91
- self[path]
103
+ path = XMLStruct.attrib_key(args.shift, @feed)
104
+ node = @xml.elements[path] rescue nil
105
+ if node
106
+ XMLStruct.new(node, @feed)
107
+ else
108
+ self[path]
109
+ end
92
110
  end
93
111
  end
94
112
  end
data/lib/smugmugapi.rb CHANGED
@@ -7,7 +7,7 @@ require File.join(File.dirname(__FILE__), "smugmug/logon")
7
7
  require File.join(File.dirname(__FILE__), "smugmug/feed")
8
8
 
9
9
  class SmugMugAPI
10
- VERSION = "0.9.5"
10
+ VERSION = "0.9.6"
11
11
 
12
12
  def nickname=(name)
13
13
  SmugMugAPI.nickname = name
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: smugmugapi
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.9.5
7
- date: 2007-12-10 00:00:00 -05:00
6
+ version: 0.9.6
7
+ date: 2007-12-13 00:00:00 -05:00
8
8
  summary: A very light wrapper around the SmugMug REST API
9
9
  require_paths:
10
10
  - lib
metadata.gz.sig CHANGED
Binary file