food_info 0.0.4 → 0.0.5
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/HISTORY.markdown
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.0.5 September 26, 2011
|
4
|
+
* Bugfix: missing 'return' was wreaking havoc with FoodInfo.search
|
5
|
+
|
3
6
|
## 0.0.4 September 26, 2011
|
4
7
|
* API improvement: Can index directly into search results (e.g. FoodInfo.search('a')[3])
|
5
8
|
* Bugfix: FoodInfo.details('..') now correctly handles results with only one serving returned
|
data/lib/food_info.rb
CHANGED
@@ -28,11 +28,11 @@ module FoodInfo
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def search(q, opts = {})
|
31
|
-
cached(:search, q, opts)
|
31
|
+
cached(:search, q, opts)
|
32
32
|
end
|
33
33
|
|
34
|
-
def details(id)
|
35
|
-
cached(:details, id)
|
34
|
+
def details(id, opts = {})
|
35
|
+
cached(:details, id)
|
36
36
|
end
|
37
37
|
|
38
38
|
|
@@ -40,7 +40,7 @@ module FoodInfo
|
|
40
40
|
|
41
41
|
def cached(method, param, opts = {}, &block)
|
42
42
|
# TODO - implement caching strategy
|
43
|
-
|
43
|
+
next_adapter.send(method, param, opts)
|
44
44
|
end
|
45
45
|
|
46
46
|
# FUTURE: This connection pool code won't do much good until HTTParty is non-blocking
|
@@ -24,12 +24,12 @@ module FoodInfo
|
|
24
24
|
}
|
25
25
|
params[:page_number] = [params[:page_number].to_i - 1, 0].max # FatSecret's pagination starts at 0
|
26
26
|
params[:max_results] = [params[:max_results].to_i, 50].min # FatSecret's max allowed results per page
|
27
|
-
|
27
|
+
|
28
28
|
data = query('foods.search', params)
|
29
29
|
Data::SearchResults.new( data['foods'] )
|
30
30
|
end
|
31
31
|
|
32
|
-
def details(food_id)
|
32
|
+
def details(food_id, opts = {})
|
33
33
|
data = query('food.get', :food_id => food_id)
|
34
34
|
Data::FoodItem.new( data['food'] )
|
35
35
|
end
|
@@ -12,14 +12,14 @@ module FoodInfo
|
|
12
12
|
property :total_results
|
13
13
|
|
14
14
|
def initialize(*args)
|
15
|
-
super(*args)
|
15
|
+
super(*args)
|
16
16
|
normalize_data
|
17
17
|
end
|
18
18
|
|
19
|
-
def normalize_data
|
19
|
+
def normalize_data
|
20
20
|
[:page, :per_page, :total_results].each do |n|
|
21
21
|
self[n] = self[n].to_i
|
22
|
-
end
|
22
|
+
end
|
23
23
|
|
24
24
|
self[:page] += 1 # FatSecret indexes their pages from 0
|
25
25
|
self[:results] = [self[:results]] unless self[:results].is_a?(Array)
|
@@ -33,7 +33,7 @@ module FoodInfo
|
|
33
33
|
|
34
34
|
# Allows pulling out a specific index without having to call results -- search('cheese')[3], not search('cheese').results[3]
|
35
35
|
def [](idx)
|
36
|
-
super(idx) if idx.is_a?(Symbol) || idx.to_i.zero?
|
36
|
+
return super(idx) if idx.is_a?(Symbol) || idx.to_i.zero?
|
37
37
|
self[:results][idx]
|
38
38
|
end
|
39
39
|
|
data/lib/food_info/version.rb
CHANGED
metadata
CHANGED
@@ -1,78 +1,58 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: food_info
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 4
|
10
|
-
version: 0.0.4
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Kali Donovan
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-09-26 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: httparty
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70296305209760 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 13
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 7
|
32
|
-
- 7
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 0.7.7
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: hashie
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *70296305209760
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: hashie
|
27
|
+
requirement: &70296305209140 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 19
|
45
|
-
segments:
|
46
|
-
- 1
|
47
|
-
- 1
|
48
|
-
- 0
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
49
32
|
version: 1.1.0
|
50
33
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: ruby-hmac
|
54
34
|
prerelease: false
|
55
|
-
|
35
|
+
version_requirements: *70296305209140
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: ruby-hmac
|
38
|
+
requirement: &70296305208640 !ruby/object:Gem::Requirement
|
56
39
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 0
|
63
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
64
44
|
type: :runtime
|
65
|
-
|
66
|
-
|
67
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70296305208640
|
47
|
+
description: Generic Ruby interface to look up nutritional information on food. Design
|
48
|
+
is modular so other adapters can be plugged in, but only data source currently implemented
|
49
|
+
is FatSecret.
|
50
|
+
email:
|
68
51
|
- kali@deviantech.com
|
69
52
|
executables: []
|
70
|
-
|
71
53
|
extensions: []
|
72
|
-
|
73
54
|
extra_rdoc_files: []
|
74
|
-
|
75
|
-
files:
|
55
|
+
files:
|
76
56
|
- .gitignore
|
77
57
|
- Gemfile
|
78
58
|
- HISTORY.markdown
|
@@ -95,36 +75,26 @@ files:
|
|
95
75
|
- lib/food_info/version.rb
|
96
76
|
homepage: https://github.com/deviantech/food_info
|
97
77
|
licenses: []
|
98
|
-
|
99
78
|
post_install_message:
|
100
79
|
rdoc_options: []
|
101
|
-
|
102
|
-
require_paths:
|
80
|
+
require_paths:
|
103
81
|
- lib
|
104
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
83
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
|
110
|
-
|
111
|
-
- 0
|
112
|
-
version: "0"
|
113
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
89
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
version: "0"
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
122
94
|
requirements: []
|
123
|
-
|
124
95
|
rubyforge_project:
|
125
96
|
rubygems_version: 1.8.10
|
126
97
|
signing_key:
|
127
98
|
specification_version: 3
|
128
99
|
summary: API for researching nutritional information of various foods
|
129
100
|
test_files: []
|
130
|
-
|