Updated code to remove obsolete call on recent version of json library.

Updated upload_image example to use PATH instead of DIRECTORY_NAME or similar.
Removed unused local variables.
This commit is contained in:
2015-04-07 19:27:30 +02:00
parent b7a12eddaf
commit 881625a0f6
25 changed files with 131 additions and 112 deletions

View File

@@ -30,23 +30,27 @@ feature -- Implementation
local
o: JSON_OBJECT
do
create Result.make_array
create Result.make_empty
across
list as c
loop
if attached {STRING} c.item.item (1) as value and attached {STRING} c.item.item (3) as img and attached {STRING} c.item.item (2) as company then
if
attached c.item.value as value and
attached c.item.img as img and
attached c.item.company as company
then
if value.as_lower.has_substring (input.as_lower) then
create o.make
o.put (create {JSON_STRING}.make_json (img), "img")
o.put (create {JSON_STRING}.make_json (value), "value")
o.put (create {JSON_STRING}.make_json (company), "company")
o.put (create {JSON_STRING}.make_from_string (img), "img")
o.put (create {JSON_STRING}.make_from_string (value), "value")
o.put (create {JSON_STRING}.make_from_string (company), "company")
Result.add (o)
end
end
end
end
list: ITERABLE [TUPLE [STRING, STRING]]
list: ITERABLE [TUPLE [value: STRING; company: STRING; img: STRING]]
-- List of contacts
end

View File

@@ -133,7 +133,7 @@ feature -- Implementation
["ZM", {STRING_32} "Zambia"], ["ZW", {STRING_32} "Zimbabwe"]
>>
create Result.make_array
create Result.make_empty
across
list as c
loop
@@ -143,8 +143,8 @@ feature -- Implementation
then
if second.as_lower.has_substring (input.as_lower) then
create o.make
o.put (create {JSON_STRING}.make_json (first.as_lower), "flag")
o.put (create {JSON_STRING}.make_json_from_string_32 (second), "value")
o.put (create {JSON_STRING}.make_from_string (first.as_lower), "flag")
o.put (create {JSON_STRING}.make_from_string_32 (second), "value")
Result.add (o)
end
end

View File

@@ -44,11 +44,13 @@ feature -- Implementation
if attached sess.get ("/complete/search?client=chrome", ctx) as resp and then not resp.error_occurred then
l_json := resp.body
end
create Result.make_array
create Result.make_empty
if l_json /= Void and then not l_json.is_empty then
create json_parser.make_parser (l_json)
create json_parser.make_with_string (l_json)
json_parser.parse_content
if
attached {JSON_ARRAY} json_parser.parse_json as data and then
json_parser.is_valid and then
attached {JSON_ARRAY} json_parser.parsed_json_value as data and then
data.valid_index (2) and then
attached {JSON_ARRAY} data.i_th (2) as list
then
@@ -57,7 +59,7 @@ feature -- Implementation
loop
if attached {JSON_STRING} list.i_th (c.item) as row then
create o.make
o.put (create {JSON_STRING}.make_with_escaped_json (row.item), "value")
o.put (create {JSON_STRING}.make_from_escaped_json_string (row.item), "value")
Result.add (o)
end
end

View File

@@ -73,8 +73,12 @@ feature -- Access
end
end
if l_json /= Void and then not l_json.is_empty then
create json_parser.make_parser (l_json)
if attached {JSON_OBJECT} json_parser.parse_json as sp then
create json_parser.make_with_string (l_json)
json_parser.parse_content
if
json_parser.is_valid and then
attached {JSON_OBJECT} json_parser.parsed_json_value as sp
then
if
attached {JSON_OBJECT} sp.item ("responseData") as responsedata and then
attached {JSON_ARRAY} responsedata.item ("results") as results

View File

@@ -18,7 +18,7 @@ feature {NONE} -- Initialization
control: detachable WSF_PROGRESS_CONTROL
make ()
make
do
end

View File

@@ -35,7 +35,7 @@ feature -- Implementation
l_lowered_input: READABLE_STRING_GENERAL
l_lowered_item: READABLE_STRING_GENERAL
do
create Result.make_array
create Result.make_empty
l_lowered_input := a_input.as_lower
across
list as c
@@ -50,7 +50,7 @@ feature -- Implementation
end
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -43,7 +43,7 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
update
-- Send new renederd control to client on update
do
state_changes.replace (create {JSON_STRING}.make_json_from_string_32 (render), "_html")
state_changes.replace (create {JSON_STRING}.make_from_string_32 (render), "_html")
end
feature --Event handling
@@ -100,7 +100,7 @@ feature -- Properties
datasource: WSF_PAGABLE_DATASOURCE [G]
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -39,7 +39,7 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
update
-- Send new rendered control to client on update
do
state_changes.replace (create {JSON_STRING}.make_json_from_string_32 (render_body), "_body")
state_changes.replace (create {JSON_STRING}.make_from_string_32 (render_body), "_body")
state_changes.replace (datasource.state, "datasource")
end
@@ -100,7 +100,7 @@ feature -- Access
pagination_control: detachable WSF_PAGINATION_CONTROL [G]
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -100,7 +100,7 @@ feature -- Change
do
if not t.same_string (text) then
text := t
state_changes.replace (create {JSON_STRING}.make_json_from_string_32 (t), "text")
state_changes.replace (create {JSON_STRING}.make_from_string_32 (t), "text")
end
ensure
text_same_string_as_t: text.same_string (t)
@@ -160,7 +160,7 @@ feature -- Properties
-- Procedure to be execued on change
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -65,7 +65,7 @@ feature -- Change
else
remove_class ("active")
end
state_changes.replace (create {JSON_BOOLEAN}.make_boolean (a), "active")
state_changes.replace (create {JSON_BOOLEAN}.make (a), "active")
end
ensure
active_set: active = a
@@ -77,4 +77,14 @@ feature -- Properties
active: BOOLEAN
-- The active state of this item
;note
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software
5949 Hollister Ave., Goleta, CA 93117 USA
Telephone 805-685-1006, Fax 805-685-6869
Website http://www.eiffel.com
Customer support http://support.eiffel.com
]"
end

View File

@@ -28,7 +28,7 @@ feature {NONE} -- Initialization
make_stateless_control (a_tag_name)
create control_name_prefix.make_empty
create state_changes.make
create actions.make_array
create actions.make_empty
ensure
state_changes_attached: attached state_changes
end
@@ -110,7 +110,7 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
end
if actions.count > 0 then
if states.item ("actions") = Void then
states.put (create {JSON_ARRAY}.make_array, "actions")
states.put (create {JSON_ARRAY}.make_empty, "actions")
end
if attached {JSON_ARRAY} states.item ("actions") as action_list then
across
@@ -223,7 +223,7 @@ feature -- Properties
-- control state and therefore could have the same name (Stateless multi controls do not add a hierarchy level)
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -29,7 +29,7 @@ feature {NONE} -- Initialization
-- Initialize with specified tag
do
Precursor (tag)
create items.make_array
create items.make_empty
create pending_removes.make (1)
ensure then
tag_set: tag_name.same_string (tag)
@@ -194,7 +194,7 @@ invariant
all_items_exist: items.count = controls.count
note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -148,7 +148,7 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
validator_description: JSON_ARRAY
do
create Result.make
create validator_description.make_array
create validator_description.make_empty
across
validators as v
loop
@@ -209,7 +209,7 @@ feature -- Validation
-- Set the error message that will be displayed upon failure of client side validation
do
error := e
state_changes.replace (create {JSON_STRING}.make_json_from_string_32 (e), "error")
state_changes.replace (create {JSON_STRING}.make_from_string_32 (e), "error")
ensure
error_set: error.same_string (e)
end
@@ -257,7 +257,7 @@ feature -- Properties
-- The bootstrap column span of the label of this form element control
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -83,14 +83,22 @@ feature -- Implementation
if not event.same_string_general ("uploadfile") then
create states.make_empty
request.read_input_data_into (states)
create json_parser.make_parser (states)
if attached {JSON_OBJECT} json_parser.parse_json as sp then
create json_parser.make_with_string (states)
json_parser.parse_content
if
json_parser.is_valid and then
attached {JSON_OBJECT} json_parser.parsed_json_value as sp
then
set_state (sp)
end
else
if attached request.form_parameter ("state") as statedata then
create json_parser.make_parser (statedata.as_string.value)
if attached {JSON_OBJECT} json_parser.parse_json as sp then
create json_parser.make_with_string (statedata.as_string.value)
json_parser.parse_content
if
json_parser.is_valid and then
attached {JSON_OBJECT} json_parser.parsed_json_value as sp
then
set_state (sp)
end
end
@@ -259,7 +267,7 @@ feature {NONE} -- Root control
-- List containing the additional javascipt files
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
copyright: "2011-2015, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -51,7 +51,7 @@ feature -- Access
if attached {JSON_OBJECT} j as jo then
l_keys := k.split ('.')
l_keys.start
create js.make_json_from_string_32 (l_keys.item.as_readable_string_32)
create js.make_from_string_general (l_keys.item)
v := jo.item (js)
l_keys.remove
if l_keys.count > 0 then
@@ -93,8 +93,9 @@ feature -- Access
f.close
end
create p.make_parser (s)
json := p.parse
create p.make_with_string (s)
p.parse_content
json := p.parsed_json_value
if attached config ("gewf.template_dir") as d then
setup.set_template_dir_from_string (d)
end
@@ -159,7 +160,7 @@ invariant
-- invariant_clause: True
note
copyright: "2011-2013, Jocelyn Fiat, Javier Velilla, Olivier Ligot, Eiffel Software and others"
copyright: "2011-2015, Jocelyn Fiat, Javier Velilla, Olivier Ligot, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -133,8 +133,9 @@ feature {NONE} -- Initialization
-- Show the Response body
if attached Result.body as m then
create j.make_parser (m)
if j.is_parsed and attached j.parse_object as j_o then
create j.make_with_string (m)
j.parse_content
if j.is_valid and then attached j.parsed_json_object as j_o then
if attached {JSON_STRING} j_o.item ("id") as l_id then
id := l_id.item
end

View File

@@ -97,7 +97,7 @@ feature -- Conversion
Result.put (json.value (o.location), location_key)
Result.put (json.value (o.status), status_key)
from
create ja.make_array
create ja.make_empty
o.items.start
until
o.items.after
@@ -117,48 +117,48 @@ feature -- Conversion
feature {NONE} -- Implementation
id_key: JSON_STRING
once
create Result.make_json ("id")
create Result.make_from_string ("id")
end
location_key: JSON_STRING
once
create Result.make_json ("location")
create Result.make_from_string ("location")
end
status_key: JSON_STRING
once
create Result.make_json ("status")
create Result.make_from_string ("status")
end
items_key : JSON_STRING
once
create Result.make_json ("items")
create Result.make_from_string ("items")
end
name_key : JSON_STRING
once
create Result.make_json ("name")
create Result.make_from_string ("name")
end
size_key : JSON_STRING
once
create Result.make_json ("size")
create Result.make_from_string ("size")
end
quantity_key : JSON_STRING
once
create Result.make_json ("quantity")
create Result.make_from_string ("quantity")
end
option_key : JSON_STRING
once
create Result.make_json ("option")
create Result.make_from_string ("option")
end
feature -- Validation
@@ -171,6 +171,6 @@ feature -- Validation
end
note
copyright: "2011-2012, Javier Velilla and others"
copyright: "2011-2015, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -559,8 +559,9 @@ feature {NONE} -- Implementation Repository Layer
do
create joc.make
json.add_converter(joc)
create parser.make_parser (l_post)
if attached parser.parse as jv and parser.is_parsed then
create parser.make_with_string (l_post)
parser.parse_content
if parser.is_valid and then attached parser.parsed_json_value as jv then
if attached {like extract_order_request} json.object (jv, "ORDER") as res then
Result := res
end
@@ -568,6 +569,6 @@ feature {NONE} -- Implementation Repository Layer
end
note
copyright: "2011-2014, Javier Velilla and others"
copyright: "2011-2015, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -385,8 +385,12 @@ feature {NONE} -- Implementation Repository Layer
do
create joc.make
json.add_converter(joc)
create parser.make_parser (l_post)
if attached parser.parse as jv and parser.is_parsed then
create parser.make_with_string (l_post)
parser.parse_content
if
parser.is_valid and then
attached parser.parsed_json_value as jv
then
if attached {like extract_order_request} json.object (jv, "ORDER") as res then
Result := res
end
@@ -394,6 +398,6 @@ feature {NONE} -- Implementation Repository Layer
end
note
copyright: "2011-2013, Javier Velilla and others"
copyright: "2011-2015, Javier Velilla and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
end

View File

@@ -21,6 +21,8 @@ inherit
WSF_DEFAULT_SERVICE
SHARED_EXECUTION_ENVIRONMENT
create
make
@@ -46,7 +48,7 @@ feature {NONE} -- Initialization
map_uri_template_agent_with_request_methods ("/upload/{name}{?nb}", agent execute_upload_put, router.methods_put)
map_uri_template_agent ("/upload{?nb}", agent execute_upload)
create www.make (document_root)
create www.make_with_path (document_root)
www.set_directory_index (<<"index.html">>)
www.set_not_found_handler (agent execute_not_found)
router.handle_with_request_methods ("", www, router.methods_GET)
@@ -54,31 +56,18 @@ feature {NONE} -- Initialization
feature -- Configuration
document_root: READABLE_STRING_8
document_root: PATH
-- Document root to look for files or directories
local
e: EXECUTION_ENVIRONMENT
dn: DIRECTORY_NAME
once
create e
create dn.make_from_string (e.current_working_directory)
dn.extend ("htdocs")
Result := dn.string
if Result [Result.count] = Operating_environment.directory_separator then
Result := Result.substring (1, Result.count - 1)
end
Result := execution_environment.current_working_path.extended ("htdocs")
ensure
not Result.ends_with (Operating_environment.directory_separator.out)
not Result.name.ends_with (Operating_environment.directory_separator.out)
end
files_root: READABLE_STRING_8
files_root: PATH
-- Uploaded files will be stored in `files_root' folder
local
dn: DIRECTORY_NAME
once
create dn.make_from_string (document_root)
dn.extend ("files")
Result := dn.string
Result := document_root.extended ("files")
end
feature -- Execution
@@ -114,8 +103,7 @@ feature -- Execution
n := 1
end
if attached {WSF_STRING} req.query_parameter ("demo") as p_demo then
create fn.make_from_string (document_root)
fn := fn.extended (p_demo.value)
fn := document_root.extended (p_demo.value)
l_body.append ("File: <input type=%"file%" name=%"uploaded_file[]%" size=%"60%" value=%""+ html_encode (fn.name) +"%"></br>%N")
end
@@ -139,9 +127,8 @@ feature -- Execution
n := n + 1
l_body.append ("<li>")
l_body.append ("<div>" + c.item.name + "=" + html_encode (c.item.filename) + " size=" + c.item.size.out + " type=" + c.item.content_type + "</div>")
create fn.make_from_string (files_root)
l_safe_filename := c.item.safe_filename
fn := fn.extended (l_safe_filename)
fn := files_root.extended (l_safe_filename)
if c.item.move_to (fn.name) then
if c.item.content_type.starts_with ("image") then
l_body.append ("%N<a href=%"../files/" + url_encode (l_safe_filename) + "%"><img src=%"../files/"+ l_safe_filename +"%" /></a>")
@@ -187,8 +174,7 @@ feature -- Execution
if attached new_temporary_output_file ("tmp-uploaded-file_" + n.out) as f then
req.read_input_data_into_file (f)
f.close
create fn.make_from_string (files_root)
fn := fn.extended (l_safe_filename)
fn := files_root.extended (l_safe_filename)
f.rename_file (fn.name)
l_body.append ("<li>")
l_body.append ("<div>Input data : size=" + f.count.out + " (" + req.content_length_value.out + ")</div>")

View File

@@ -41,7 +41,7 @@ feature -- Execution
rescued: BOOLEAN
do
if not rescued then
create req.make ((create {EXECUTION_ENVIRONMENT}).starting_environment_variables, create {WGI_CGI_INPUT_STREAM}.make, Current)
create req.make ((create {EXECUTION_ENVIRONMENT}).starting_environment, create {WGI_CGI_INPUT_STREAM}.make, Current)
create res.make (create {WGI_CGI_OUTPUT_STREAM}.make, create {WGI_CGI_ERROR_STREAM}.make)
service.execute (req, res)
res.push
@@ -68,7 +68,7 @@ feature -- Execution
end
note
copyright: "2011-2013, Eiffel Software and others"
copyright: "2011-2015, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software

View File

@@ -325,7 +325,6 @@ feature -- Header add cookie
--| the same response with the same cookie-name.
local
l_same_cookie_name: BOOLEAN
l_nv: STRING
do
across
internal_header.headers as ic

View File

@@ -45,7 +45,7 @@
<library name="rss" location="..\draft\library\protocol\syndication\rss\rss-safe.ecf" readonly="false"/>
<library name="upload_image" location="..\examples\upload_image\upload_image-safe.ecf" readonly="false"/>
<library name="uri_template" location="..\library\text\parser\uri_template\uri_template-safe.ecf" readonly="false"/>
<library name="wizard" location="..\tools\ise_wizard\ewf_ise_wizard-safe.ecf" readonly="false"/>
<library name="wizard" location="..\tools\estudio_wizard\ewf_ise_wizard-safe.ecf" readonly="false"/>
<library name="wsf" location="..\library\server\wsf\wsf-safe.ecf" readonly="false"/>
<library name="wsf_all" location="..\library\server\wsf\connector\all-safe.ecf" readonly="false"/>
<library name="wsf_cgi" location="..\library\server\wsf\connector\cgi-safe.ecf" readonly="false"/>

View File

@@ -38,7 +38,7 @@
<library name="restbucks" location="..\examples\restbucksCRUD\restbucks-safe.ecf" readonly="false"/>
<library name="upload_image" location="..\examples\upload_image\upload_image-safe.ecf" readonly="false"/>
<library name="uri_template" location="..\library\text\parser\uri_template\uri_template-safe.ecf" readonly="false"/>
<library name="wizard" location="..\tools\ise_wizard\ewf_ise_wizard-safe.ecf" readonly="false"/>
<library name="wizard" location="..\tools\estudio_wizard\ewf_ise_wizard-safe.ecf" readonly="false"/>
<library name="wsf" location="..\library\server\wsf\wsf-safe.ecf" readonly="false"/>
<library name="wsf_all" location="..\library\server\wsf\connector\all-safe.ecf" readonly="false"/>
<library name="wsf_cgi" location="..\library\server\wsf\connector\cgi-safe.ecf" readonly="false"/>

View File

@@ -23,7 +23,6 @@ feature {TEMPLATE_ROUTINES}
-- If not handled by this inspector, return Void
local
l_fn: STRING
utf: UTF_CONVERTER
do
if attached {WIZARD_DATA} obj as wiz then
l_fn := field_name.as_lower