wordnik 0.3.5 → 0.3.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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wordnik (0.3.4)
4
+ wordnik (0.3.6)
5
5
  activemodel (>= 3.0.3)
6
6
  addressable (>= 2.2.4)
7
7
  htmlentities (>= 4.2.4)
@@ -0,0 +1,46 @@
1
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2
+ <xsl:output method="xml" encoding="ISO-8859-1"/>
3
+ <xsl:param name="indent-increment" select="' '"/>
4
+
5
+ <xsl:template name="newline">
6
+ <xsl:text disable-output-escaping="yes">
7
+ </xsl:text>
8
+ </xsl:template>
9
+
10
+ <xsl:template match="comment() | processing-instruction()">
11
+ <xsl:param name="indent" select="''"/>
12
+ <xsl:call-template name="newline"/>
13
+ <xsl:value-of select="$indent"/>
14
+ <xsl:copy />
15
+ </xsl:template>
16
+
17
+ <xsl:template match="text()">
18
+ <xsl:param name="indent" select="''"/>
19
+ <xsl:call-template name="newline"/>
20
+ <xsl:value-of select="$indent"/>
21
+ <xsl:value-of select="normalize-space(.)"/>
22
+ </xsl:template>
23
+
24
+ <xsl:template match="text()[normalize-space(.)='']"/>
25
+
26
+ <xsl:template match="*">
27
+ <xsl:param name="indent" select="''"/>
28
+ <xsl:call-template name="newline"/>
29
+ <xsl:value-of select="$indent"/>
30
+ <xsl:choose>
31
+ <xsl:when test="count(child::*) > 0">
32
+ <xsl:copy>
33
+ <xsl:copy-of select="@*"/>
34
+ <xsl:apply-templates select="*|text()">
35
+ <xsl:with-param name="indent" select="concat ($indent, $indent-increment)"/>
36
+ </xsl:apply-templates>
37
+ <xsl:call-template name="newline"/>
38
+ <xsl:value-of select="$indent"/>
39
+ </xsl:copy>
40
+ </xsl:when>
41
+ <xsl:otherwise>
42
+ <xsl:copy-of select="."/>
43
+ </xsl:otherwise>
44
+ </xsl:choose>
45
+ </xsl:template>
46
+ </xsl:stylesheet>
@@ -166,8 +166,8 @@ module Wordnik
166
166
 
167
167
  def response_headers_pretty
168
168
  return unless @response.present?
169
- # JSON.pretty_generate(@response.headers).gsub(/\n/, '<br/>').html_safe # <- This was for RestClient
170
- @response.headers.gsub(/\n/, '<br/>').html_safe # <- This is for Typhoeus
169
+ # JSON.pretty_generate(@response.headers).gsub(/\n/, '<br/>') # <- This was for RestClient
170
+ @response.headers.gsub(/\n/, '<br/>') # <- This is for Typhoeus
171
171
  end
172
172
 
173
173
  # It's an ActiveModel thing..
@@ -3,6 +3,8 @@ module Wordnik
3
3
  class Response
4
4
  require 'active_model'
5
5
  require 'json'
6
+ require 'nokogiri'
7
+ require 'htmlentities'
6
8
  include ActiveModel::Validations
7
9
  include ActiveModel::Conversion
8
10
  extend ActiveModel::Naming
@@ -52,9 +54,9 @@ module Wordnik
52
54
  return unless body.present?
53
55
  case format
54
56
  when :json
55
- JSON.pretty_generate(body).gsub(/\n/, '<br/>').html_safe
57
+ JSON.pretty_generate(body).gsub(/\n/, '<br/>')
56
58
  when :xml
57
- xsl = Nokogiri::XSLT(File.open(Rails.root.join("config", "pretty_print.xsl")))
59
+ xsl = Nokogiri::XSLT(File.open(File.join(File.dirname(__FILE__), "../../config/pretty_print.xsl")))
58
60
  xml = Nokogiri(body)
59
61
  coder = HTMLEntities.new
60
62
  coder.encode(xsl.apply_to(xml).to_s)
@@ -62,7 +64,7 @@ module Wordnik
62
64
  end
63
65
 
64
66
  def pretty_headers
65
- JSON.pretty_generate(headers).gsub(/\n/, '<br/>').html_safe
67
+ JSON.pretty_generate(headers).gsub(/\n/, '<br/>')
66
68
  end
67
69
 
68
70
  # It's an ActiveModel thing..
@@ -1,3 +1,3 @@
1
1
  module Wordnik
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
@@ -45,5 +45,25 @@ describe Wordnik::Response do
45
45
  end
46
46
 
47
47
  end
48
+
49
+ describe "prettiness" do
50
+
51
+ it "has a pretty json body" do
52
+ @response.pretty_body.should =~ /\{.*\}/
53
+ end
54
+
55
+ it "has a pretty xml body" do
56
+ VCR.use_cassette('xml_response_request', :record => :new_episodes) do
57
+ @raw = Typhoeus::Request.get("http://api.wordnik.com/v4/word.xml/help")
58
+ end
59
+ @response = Wordnik::Response.new(@raw)
60
+ @response.pretty_body.should =~ /\?xml/
61
+ end
62
+
63
+ it "has pretty headers" do
64
+ @response.pretty_headers.should =~ /\{.*\}/
65
+ end
66
+
67
+ end
48
68
 
49
69
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: wordnik
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.5
5
+ version: 0.3.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Zeke Sikelianos
@@ -142,6 +142,7 @@ files:
142
142
  - api_docs/wordLists.json
143
143
  - api_docs/wordoftheday.json
144
144
  - api_docs/words.json
145
+ - config/pretty_print.xsl
145
146
  - lib/wordnik.rb
146
147
  - lib/wordnik/configuration.rb
147
148
  - lib/wordnik/endpoint.rb