confetti 0.8.2 → 0.8.3
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/Gemfile.lock +1 -1
- data/lib/confetti/config.rb +74 -13
- data/lib/confetti/version.rb +1 -1
- data/spec/config_spec.rb +19 -0
- metadata +3 -3
data/Gemfile.lock
CHANGED
data/lib/confetti/config.rb
CHANGED
@@ -10,9 +10,10 @@ module Confetti
|
|
10
10
|
:icon_set, :feature_set, :preference_set, :xml_doc,
|
11
11
|
:splash_set, :plist_icon_set, :access_set, :plugin_set
|
12
12
|
|
13
|
-
generate_and_write :android_manifest, :android_strings,
|
14
|
-
:
|
15
|
-
:
|
13
|
+
generate_and_write :android_manifest, :android_strings,
|
14
|
+
:webos_appinfo, :ios_info, :symbian_wrt_info,
|
15
|
+
:blackberry_widgets_config, :ios_remote_plist,
|
16
|
+
:windows_phone7_manifest
|
16
17
|
|
17
18
|
# handle bad generate/write calls
|
18
19
|
def method_missing(method_name, *args)
|
@@ -37,7 +38,9 @@ module Confetti
|
|
37
38
|
@splash_set = TypedSet.new Image
|
38
39
|
@preference_set = TypedSet.new Preference
|
39
40
|
@access_set = TypedSet.new Access
|
40
|
-
|
41
|
+
|
42
|
+
# defined in PhoneGap module
|
43
|
+
@plugin_set = TypedSet.new Plugin
|
41
44
|
@viewmodes = []
|
42
45
|
|
43
46
|
if args.length > 0 && is_file?(args.first)
|
@@ -75,25 +78,58 @@ module Confetti
|
|
75
78
|
when "http://www.w3.org/ns/widgets"
|
76
79
|
case ele.name
|
77
80
|
when "name"
|
78
|
-
@name = Name.new(
|
81
|
+
@name = Name.new(
|
82
|
+
ele.text.nil? ? "" : ele.text.strip,
|
83
|
+
attr["shortname"]
|
84
|
+
)
|
85
|
+
|
79
86
|
when "author"
|
80
|
-
@author = Author.new(
|
87
|
+
@author = Author.new(
|
88
|
+
ele.text.nil? ? "" : ele.text.strip,
|
89
|
+
attr["href"],
|
90
|
+
attr["email"]
|
91
|
+
)
|
92
|
+
|
81
93
|
when "description"
|
82
94
|
@description = ele.text.nil? ? "" : ele.text.strip
|
95
|
+
|
83
96
|
when "icon"
|
84
|
-
@icon_set << Image.new(
|
97
|
+
@icon_set << Image.new(
|
98
|
+
attr["src"],
|
99
|
+
attr["height"],
|
100
|
+
attr["width"],
|
101
|
+
attr
|
102
|
+
)
|
85
103
|
# used for the info.plist file
|
86
104
|
@plist_icon_set << attr["src"]
|
105
|
+
|
87
106
|
when "feature"
|
88
|
-
@feature_set << Feature.new(
|
107
|
+
@feature_set << Feature.new(
|
108
|
+
attr["name"],
|
109
|
+
attr["required"]
|
110
|
+
)
|
111
|
+
|
89
112
|
when "preference"
|
90
|
-
@preference_set << Preference.new(
|
113
|
+
@preference_set << Preference.new(
|
114
|
+
attr["name"],
|
115
|
+
attr["value"],
|
116
|
+
attr["readonly"]
|
117
|
+
)
|
118
|
+
|
91
119
|
when "license"
|
92
|
-
@license = License.new(
|
120
|
+
@license = License.new(
|
121
|
+
ele.text.nil? ? "" : ele.text.strip,
|
122
|
+
attr["href"]
|
123
|
+
)
|
124
|
+
|
93
125
|
when "access"
|
94
126
|
sub = boolean_value(attr["subdomains"], true)
|
95
127
|
browserOnly = boolean_value(attr["browserOnly"])
|
96
|
-
@access_set << Access.new(
|
128
|
+
@access_set << Access.new(
|
129
|
+
attr["origin"],
|
130
|
+
sub,
|
131
|
+
browserOnly
|
132
|
+
)
|
97
133
|
end
|
98
134
|
|
99
135
|
# PhoneGap extensions (gap:)
|
@@ -101,13 +137,22 @@ module Confetti
|
|
101
137
|
case ele.name
|
102
138
|
when "splash"
|
103
139
|
next if attr["src"].nil? or attr["src"].empty?
|
104
|
-
@splash_set << Image.new(
|
140
|
+
@splash_set << Image.new(
|
141
|
+
attr["src"],
|
142
|
+
attr["height"],
|
143
|
+
attr["width"],
|
144
|
+
attr
|
145
|
+
)
|
146
|
+
|
105
147
|
when "plugin"
|
106
148
|
next if attr["name"].nil? or attr["name"].empty?
|
107
149
|
plugin = Plugin.new(attr["name"], attr["version"])
|
108
150
|
ele.each_element('param') do |param|
|
109
151
|
p_attr = param.attributes
|
110
|
-
plugin.param_set << Param.new(
|
152
|
+
plugin.param_set << Param.new(
|
153
|
+
p_attr["name"],
|
154
|
+
p_attr["value"]
|
155
|
+
)
|
111
156
|
end
|
112
157
|
@plugin_set << plugin
|
113
158
|
end
|
@@ -228,5 +273,21 @@ module Confetti
|
|
228
273
|
value == "true"
|
229
274
|
end
|
230
275
|
end
|
276
|
+
|
277
|
+
def filtered_to_s( xpaths = [] )
|
278
|
+
xpaths = [ xpaths ] unless xpaths.kind_of?(Array)
|
279
|
+
|
280
|
+
@xml = @xml_doc.dup
|
281
|
+
|
282
|
+
xpaths.each do |path|
|
283
|
+
@xml.root.elements.delete_all path
|
284
|
+
end
|
285
|
+
|
286
|
+
@xml.root.to_s
|
287
|
+
end
|
288
|
+
|
289
|
+
def to_s
|
290
|
+
@xml_doc.root.to_s
|
291
|
+
end
|
231
292
|
end
|
232
293
|
end
|
data/lib/confetti/version.rb
CHANGED
data/spec/config_spec.rb
CHANGED
@@ -731,4 +731,23 @@ describe Confetti::Config do
|
|
731
731
|
end
|
732
732
|
end
|
733
733
|
end
|
734
|
+
|
735
|
+
describe "serialization" do
|
736
|
+
|
737
|
+
before :each do
|
738
|
+
@config = Confetti::Config.new(File.join(
|
739
|
+
fixture_dir,
|
740
|
+
"config.xml"
|
741
|
+
))
|
742
|
+
end
|
743
|
+
|
744
|
+
it "should define a to_s method" do
|
745
|
+
@config.to_s.kind_of?(String).should == true
|
746
|
+
end
|
747
|
+
|
748
|
+
it "should serialize when no filters provided" do
|
749
|
+
@config.to_s.should match /icon/
|
750
|
+
@config.filtered_to_s("//icon").should_not match /icon/
|
751
|
+
end
|
752
|
+
end
|
734
753
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 8
|
8
|
-
-
|
9
|
-
version: 0.8.
|
8
|
+
- 3
|
9
|
+
version: 0.8.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Andrew Lunny
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-06-
|
19
|
+
date: 2012-06-26 00:00:00 -07:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|