gdagley-esv 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
@@ -0,0 +1,5 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Geoffrey Dagley
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,35 @@
1
+ = esv
2
+
3
+ Wrapper for English Standard Version (ESV) Bible Web Service. See ESV API docs http://www.esvapi.org/
4
+
5
+ == SYNOPSIS:
6
+
7
+ b = ESV::Bible.new
8
+
9
+ Default response for most actions is HTML
10
+ b.passageQuery('John 1:1') # => "<div class=\"esv\"><h2>John 1:1 <object type=\"application/x-shockwave-flash\" data=\"http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001\" width=\"40\" height=\"12\" class=\"audio\"><param name=\"movie\" value=\"http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001\" /><param name=\"wmode\" value=\"transparent\" /></object></h2>\n<div class=\"esv-text\"><h3 id=\"p43001001.01-1\">The Word Became Flesh</h3>\n<p class=\"chapter-first\" id=\"p43001001.05-1\"><span class=\"chapter-num\" id=\"v43001001-1\">1:1&nbsp;</span>In the beginning was the Word, and the Word was with God, and the Word was God. (<a href=\"http://www.esv.org\" class=\"copyright\">ESV</a>)</p>\n</div>\n</div>"
11
+
12
+ XML responses are converted to Hashes
13
+ b.passageQuery('John 1:1', 'output-format' => 'crossway-xml-1.0') # => {"crossway_bible"=>{"class"=>"passage-query", "passage"=>{"reference"=>"John 1:1", "surrounding_chapters"=>{"previous"=>"Luke 24", "current"=>"John 1", "next"=>"John 2"}, "content"=>{"verse_unit"=>"<markerclass=\"begin-verse\" mid=\"v43001001\"></marker><begin_chapternum=\"1\"></begin_chapter><heading>The Word Became Flesh</heading><begin_paragraphclass=\"chapter-first\"></begin_paragraph><verse_numbegin_chapter=\"1\">1</verse_num>In the beginning was the Word, and the Word was with God, and the Word was God.<end_paragraph></end_paragraph>"}}, "copyright"=>"The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles, a division of Good News Publishers. Used by permission. All rights reserved. http://www.esv.org"}}
14
+
15
+ == REQUIREMENTS:
16
+
17
+ * httparty
18
+
19
+ == INSTALL:
20
+
21
+ * sudo gem install gdagley-esv
22
+
23
+ == Note on Patches/Pull Requests
24
+
25
+ * Fork the project.
26
+ * Make your feature addition or bug fix.
27
+ * Add tests for it. This is important so I don't break it in a
28
+ future version unintentionally.
29
+ * Commit, do not mess with rakefile, version, or history.
30
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
31
+ * Send me a pull request. Bonus points for topic branches.
32
+
33
+ == Copyright
34
+
35
+ Copyright (c) 2009 Geoffrey Dagley. See LICENSE for details.
@@ -0,0 +1,49 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "esv"
8
+ gem.summary = %Q{Wrapper for English Standard Version (ESV) Bible Web Service. See ESV API docs http://www.esvapi.org/}
9
+ gem.email = "gdagley@gmail.com"
10
+ gem.homepage = "http://github.com/gdagley/esv"
11
+ gem.authors = ["Geoffrey Dagley"]
12
+ gem.add_dependency "httparty"
13
+ gem.add_development_dependency "rspec"
14
+ gem.add_development_dependency "fakeweb"
15
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
+ end
17
+ rescue LoadError
18
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
19
+ end
20
+
21
+ require 'spec/rake/spectask'
22
+ Spec::Rake::SpecTask.new(:spec) do |spec|
23
+ spec.libs << 'lib' << 'spec'
24
+ spec.spec_files = FileList['spec/**/*_spec.rb']
25
+ end
26
+
27
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
28
+ spec.libs << 'lib' << 'spec'
29
+ spec.pattern = 'spec/**/*_spec.rb'
30
+ spec.rcov = true
31
+ end
32
+
33
+ task :spec => :check_dependencies
34
+
35
+ task :default => :spec
36
+
37
+ require 'rake/rdoctask'
38
+ Rake::RDocTask.new do |rdoc|
39
+ if File.exist?('VERSION')
40
+ version = File.read('VERSION')
41
+ else
42
+ version = ""
43
+ end
44
+
45
+ rdoc.rdoc_dir = 'rdoc'
46
+ rdoc.title = "esv #{version}"
47
+ rdoc.rdoc_files.include('README*')
48
+ rdoc.rdoc_files.include('lib/**/*.rb')
49
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.2
@@ -0,0 +1,69 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{esv}
8
+ s.version = "0.1.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Geoffrey Dagley"]
12
+ s.date = %q{2009-09-08}
13
+ s.email = %q{gdagley@gmail.com}
14
+ s.extra_rdoc_files = [
15
+ "LICENSE",
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ ".document",
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "esv.gemspec",
26
+ "lib/esv.rb",
27
+ "lib/esv/bible.rb",
28
+ "lib/esv/reading_plan.rb",
29
+ "spec/esv/bible_spec.rb",
30
+ "spec/esv/reading_plan_spec.rb",
31
+ "spec/esv_spec.rb",
32
+ "spec/fixtures/passage_query.html",
33
+ "spec/fixtures/passage_query.xml",
34
+ "spec/fixtures/reading_plan_info.xml",
35
+ "spec/fixtures/reading_plan_query.html",
36
+ "spec/fixtures/reading_plan_query.xml",
37
+ "spec/spec_helper.rb"
38
+ ]
39
+ s.homepage = %q{http://github.com/gdagley/esv}
40
+ s.rdoc_options = ["--charset=UTF-8"]
41
+ s.require_paths = ["lib"]
42
+ s.rubygems_version = %q{1.3.5}
43
+ s.summary = %q{Wrapper for English Standard Version (ESV) Bible Web Service. See ESV API docs http://www.esvapi.org/}
44
+ s.test_files = [
45
+ "spec/esv/bible_spec.rb",
46
+ "spec/esv/reading_plan_spec.rb",
47
+ "spec/esv_spec.rb",
48
+ "spec/spec_helper.rb"
49
+ ]
50
+
51
+ if s.respond_to? :specification_version then
52
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
53
+ s.specification_version = 3
54
+
55
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
56
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
57
+ s.add_development_dependency(%q<rspec>, [">= 0"])
58
+ s.add_development_dependency(%q<fakeweb>, [">= 0"])
59
+ else
60
+ s.add_dependency(%q<httparty>, [">= 0"])
61
+ s.add_dependency(%q<rspec>, [">= 0"])
62
+ s.add_dependency(%q<fakeweb>, [">= 0"])
63
+ end
64
+ else
65
+ s.add_dependency(%q<httparty>, [">= 0"])
66
+ s.add_dependency(%q<rspec>, [">= 0"])
67
+ s.add_dependency(%q<fakeweb>, [">= 0"])
68
+ end
69
+ end
@@ -0,0 +1,56 @@
1
+ require 'esv/bible'
2
+ require 'esv/reading_plan'
3
+
4
+ module ESV
5
+ OUTPUT_FORMATS =
6
+ ['html', 'crossway-xml-1.0', 'plain-text', 'mp3']
7
+
8
+ HTML_OPTIONS =
9
+ {
10
+ 'include-passage-references' => true,
11
+ 'include-first-verse-numbers' => true,
12
+ 'include-verse-numbers' => true,
13
+ 'include-footnotes' => true,
14
+ 'include-footnote-links' => true,
15
+ 'include-headings' => true,
16
+ 'include-subheadings' => true,
17
+ 'include-surrounding-chapters' => false,
18
+ 'include-word-ids' => false,
19
+ 'link-url' => 'http://www.gnpcb.org/esv/search/',
20
+ 'include-audio-link' => true,
21
+ 'audio-format' => 'flash',
22
+ 'audio-version' => 'hw',
23
+ 'include-short-copyright' => true,
24
+ 'include-copyright' => false,
25
+ }
26
+
27
+ XML_OPTIONS =
28
+ {
29
+ 'include-xml-declaration' => false,
30
+ 'include-doctype' => true,
31
+ 'include-quote-entities' => true,
32
+ 'include-simple-entities' => false,
33
+ 'include-cross-references' => false,
34
+ 'include-line-breaks' => true,
35
+ 'include-word-ids' => false,
36
+ 'include-virtual-attributes' => false,
37
+ 'base-element' => 'verse-unit',
38
+ }
39
+
40
+ TEXT_OPTIONS =
41
+ {
42
+ 'include-passage-references' => true,
43
+ 'include-first-verse-numbers' => true,
44
+ 'include-verse-numbers' => true,
45
+ 'include-footnotes' => true,
46
+ 'include-short-copyright' => true,
47
+ 'include-copyright' => false,
48
+ 'include-passage-horizontal-lines' => true,
49
+ 'include-heading-horizontal-lines' => true,
50
+ 'include-headings' => true,
51
+ 'include-subheadings' => true,
52
+ 'include-selahs' => true,
53
+ 'include-content-type' => true,
54
+ 'line-length' => 74,
55
+ }
56
+ end
@@ -0,0 +1,55 @@
1
+ require 'httparty'
2
+
3
+ module ESV
4
+ class Bible
5
+ include HTTParty
6
+
7
+ base_uri 'http://www.esvapi.org/v2/rest/'
8
+
9
+ # The ESV API requires a key that can be passed in as one of the options, :key => 'value'. By default, it is 'IP'
10
+ def initialize(default_options={})
11
+ @default_options = default_options
12
+ @default_options[:key] ||= 'IP'
13
+ end
14
+
15
+ # Lookup a passage
16
+ #
17
+ # See http://www.esvapi.org/api for more information and options
18
+ def passage_query(passage, options={})
19
+ options[:passage] = passage
20
+ self.class.get '/passageQuery', :query => @default_options.merge(options)
21
+ end
22
+
23
+ # Look up a passage or show word-search results, depending on the query
24
+ #
25
+ # The output format is always HTML.
26
+ #
27
+ # See http://www.esvapi.org/api for more information and options
28
+ def query(q, options={})
29
+ options[:q] = q
30
+ self.class.get '/query', :query => @default_options.merge(options)
31
+ end
32
+
33
+ # Parse and display information about your query, including identify whether it is a passage reference or a word search
34
+ #
35
+ # See http://www.esvapi.org/api for more information and options
36
+ def query_info(q)
37
+ options = {:q => q}
38
+ self.class.get '/queryInfo', :query => @default_options.merge(options)
39
+ end
40
+
41
+ # Display a random verse from a preselected list, or specify verse(s)
42
+ #
43
+ # See http://www.esvapi.org/api for more information and options
44
+ def verse(options={})
45
+ self.class.get '/verse', :query => @default_options.merge(options)
46
+ end
47
+
48
+ # Display a verse that changes every day
49
+ #
50
+ # See http://www.esvapi.org/api for more information and options
51
+ def daily_verse(options={})
52
+ self.class.get '/dailyVerse', :query => @default_options.merge(options)
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,29 @@
1
+ require 'httparty'
2
+
3
+ module ESV
4
+ class ReadingPlan
5
+ include HTTParty
6
+
7
+ base_uri 'http://www.esvapi.org/v2/rest/'
8
+
9
+ # The ESV API requires a key that can be passed in as one of the options, :key => 'value'. By default, it is 'IP'
10
+ def initialize(default_options={})
11
+ @default_options = default_options
12
+ @default_options[:key] ||= 'IP'
13
+ end
14
+
15
+ # Retrieve passages from our Devotions section
16
+ #
17
+ # See http://www.esvapi.org/api for more information and options
18
+ def query(options={})
19
+ self.class.get '/readingPlanQuery', :query => @default_options.merge(options)
20
+ end
21
+
22
+ # Parse and display information about the reading plan for a given date
23
+ #
24
+ # See http://www.esvapi.org/api for more information and options
25
+ def info(options={})
26
+ self.class.get '/readingPlanInfo', :query => @default_options.merge(options)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,32 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe ESV::Bible do
4
+ before do
5
+ @bible = ESV::Bible.new(:key => 'TEST')
6
+ end
7
+
8
+ describe "passage_query" do
9
+ it "should retrieve the passage" do
10
+ stub_get("http://www.esvapi.org/v2/rest/passageQuery?passage=John%201&key=TEST", "passage_query.html")
11
+ @bible.passage_query('John 1').should include("<h2>John 1")
12
+ end
13
+
14
+ it "should retrieve the passage as XML" do
15
+ stub_get("http://www.esvapi.org/v2/rest/passageQuery?output-format=crossway-xml-1.0&key=TEST&passage=John%201", "passage_query.xml")
16
+ passage = @bible.passage_query('John 1', 'output-format' => 'crossway-xml-1.0')['crossway_bible']["passage"]
17
+ passage["reference"].should == "John 1"
18
+ end
19
+ end
20
+
21
+ describe "query" do
22
+ end
23
+
24
+ describe "query_info" do
25
+ end
26
+
27
+ describe "verse" do
28
+ end
29
+
30
+ describe "daily_verse" do
31
+ end
32
+ end
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe ESV::ReadingPlan do
4
+ before do
5
+ @plan = ESV::ReadingPlan.new(:key => 'TEST')
6
+ end
7
+
8
+ describe "query" do
9
+ it "should retrieve the daily reading" do
10
+ stub_get("http://www.esvapi.org/v2/rest/readingPlanQuery?key=TEST", "reading_plan_query.html")
11
+ @plan.query.should include("<h2>2 Samuel 2")
12
+ end
13
+
14
+ it "should retrieve the daily reading as XML" do
15
+ stub_get("http://www.esvapi.org/v2/rest/readingPlanQuery?output-format=crossway-xml-1.0&key=TEST", "reading_plan_query.xml")
16
+ reading = @plan.query('output-format' => 'crossway-xml-1.0')["crossway_bible"]
17
+ reading["passage"][0]["reference"].should == "2 Samuel 2"
18
+ end
19
+
20
+ it "should retrieve the daily reading for a specific date" do
21
+ stub_get("http://www.esvapi.org/v2/rest/readingPlanQuery?date=2009-10-01&key=TEST", "reading_plan_query.html")
22
+ @plan.query('date' => '2009-10-01').should include("<h2>2 Samuel 2")
23
+ end
24
+ end
25
+
26
+ describe "info" do
27
+ it "should retrieve XML info for reading plan" do
28
+ stub_get("http://www.esvapi.org/v2/rest/readingPlanInfo?key=TEST", "reading_plan_info.xml")
29
+ info = @plan.info['crossway_bible']
30
+ info["plan"].should == "one-year-tract"
31
+ info["date"].should == "20090908"
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,4 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Esv" do
4
+ end
@@ -0,0 +1,51 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Tue, 08 Sep 2009 14:59:46 GMT
3
+ Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.5 with Suhosin-Patch
4
+ Content-Location: passageQuery.php
5
+ Vary: negotiate
6
+ TCN: choice
7
+ X-Powered-By: PHP/5.2.4-2ubuntu5.5
8
+ Expires: Wed, 09 Sep 2009 14:59:46 +0000
9
+ Transfer-Encoding: chunked
10
+ Content-Type: text/html
11
+
12
+ <div class="esv"><h2>John 1 <object type="application/x-shockwave-flash" data="http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001-43001051" width="40" height="12" class="audio"><param name="movie" value="http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001-43001051" /><param name="wmode" value="transparent" /></object></h2>
13
+ <div class="esv-text"><h3 id="p43001001.01-1">The Word Became Flesh</h3>
14
+ <p class="chapter-first" id="p43001001.05-1"><span class="chapter-num" id="v43001001-1">1:1&nbsp;</span>In the beginning was the Word, and the Word was with God, and the Word was God. <span class="verse-num" id="v43001002-1">2&nbsp;</span>He was in the beginning with God. <span class="verse-num" id="v43001003-1">3&nbsp;</span>All things were made through him, and without him was not any thing made that was made. <span class="verse-num" id="v43001004-1">4&nbsp;</span>In him was life,<span class="footnote">&nbsp;<a href="#f1" id="b1" title="Or 'was not any thing made. That which has been made was life in him'">[1]</a></span> and the life was the light of men. <span class="verse-num" id="v43001005-1">5&nbsp;</span>The light shines in the darkness, and the darkness has not overcome it.</p>
15
+ <p id="p43001006.01-1"><span class="verse-num" id="v43001006-1">6&nbsp;</span>There was a man sent from God, whose name was John. <span class="verse-num" id="v43001007-1">7&nbsp;</span>He came as a witness, to bear witness about the light, that all might believe through him. <span class="verse-num" id="v43001008-1">8&nbsp;</span>He was not the light, but came to bear witness about the light.</p>
16
+ <p id="p43001009.01-1"><span class="verse-num" id="v43001009-1">9&nbsp;</span>The true light, which enlightens everyone, was coming into the world. <span class="verse-num" id="v43001010-1">10&nbsp;</span>He was in the world, and the world was made through him, yet the world did not know him. <span class="verse-num" id="v43001011-1">11&nbsp;</span>He came to his own,<span class="footnote">&nbsp;<a href="#f2" id="b2" title="Greek 'to his own things'; that is, to his own domain, or to his own people">[2]</a></span> and his own people<span class="footnote">&nbsp;<a href="#f3" id="b3" title="'People' is implied in Greek">[3]</a></span> did not receive him. <span class="verse-num" id="v43001012-1">12&nbsp;</span>But to all who did receive him, who believed in his name, he gave the right to become children of God, <span class="verse-num" id="v43001013-1">13&nbsp;</span>who were born, not of blood nor of the will of the flesh nor of the will of man, but of God.</p>
17
+ <p id="p43001014.01-1"><span class="verse-num" id="v43001014-1">14&nbsp;</span>And the Word became flesh and dwelt among us, and we have seen his glory, glory as of the only Son from the Father, full of grace and truth. <span class="verse-num" id="v43001015-1">15&nbsp;</span>(John bore witness about him, and cried out, &#8220;This was he of whom I said, &#8216;He who comes after me ranks before me, because he was before me.&#8217;&#8221;) <span class="verse-num" id="v43001016-1">16&nbsp;</span>And from his fullness we have all received, grace upon grace. <span class="verse-num" id="v43001017-1">17&nbsp;</span>For the law was given through Moses; grace and truth came through Jesus Christ. <span class="verse-num" id="v43001018-1">18&nbsp;</span>No one has ever seen God; the only God,<span class="footnote">&nbsp;<a href="#f4" id="b4" title="Or 'the only One, who is God'; some manuscripts 'the only Son'">[4]</a></span> who is at the Father's side,<span class="footnote">&nbsp;<a href="#f5" id="b5" title="Greek 'in the bosom of the Father'">[5]</a></span> he has made him known.</p>
18
+ <h3 id="p43001019.01-1">The Testimony of John the Baptist</h3>
19
+ <p id="p43001019.07-1"><span class="verse-num" id="v43001019-1">19&nbsp;</span>And this is the testimony of John, when the Jews sent priests and Levites from Jerusalem to ask him, &#8220;Who are you?&#8221; <span class="verse-num" id="v43001020-1">20&nbsp;</span>He confessed, and did not deny, but confessed, &#8220;I am not the Christ.&#8221; <span class="verse-num" id="v43001021-1">21&nbsp;</span>And they asked him, &#8220;What then? Are you Elijah?&#8221; He said, &#8220;I am not.&#8221; &#8220;Are you the Prophet?&#8221; And he answered, &#8220;No.&#8221; <span class="verse-num" id="v43001022-1">22&nbsp;</span>So they said to him, &#8220;Who are you? We need to give an answer to those who sent us. What do you say about yourself?&#8221; <span class="verse-num" id="v43001023-1">23&nbsp;</span>He said, &#8220;I am the voice of one crying out in the wilderness, &#8216;Make straight<span class="footnote">&nbsp;<a href="#f6" id="b6" title="Or 'crying out, 'In the wilderness make straight'">[6]</a></span> the way of the Lord,&#8217; as the prophet Isaiah said.&#8221;</p>
20
+ <p id="p43001024.01-1"><span class="verse-num" id="v43001024-1">24&nbsp;</span>(Now they had been sent from the Pharisees.) <span class="verse-num" id="v43001025-1">25&nbsp;</span>They asked him, &#8220;Then why are you baptizing, if you are neither the Christ, nor Elijah, nor the Prophet?&#8221; <span class="verse-num" id="v43001026-1">26&nbsp;</span>John answered them, &#8220;I baptize with water, but among you stands one you do not know, <span class="verse-num" id="v43001027-1">27&nbsp;</span>even he who comes after me, the strap of whose sandal I am not worthy to untie.&#8221; <span class="verse-num" id="v43001028-1">28&nbsp;</span>These things took place in Bethany across the Jordan, where John was baptizing.</p>
21
+ <h3 id="p43001029.01-1">Behold, the Lamb of God</h3>
22
+ <p id="p43001029.06-1"><span class="verse-num" id="v43001029-1">29&nbsp;</span>The next day he saw Jesus coming toward him, and said, &#8220;Behold, the Lamb of God, who takes away the sin of the world! <span class="verse-num" id="v43001030-1">30&nbsp;</span>This is he of whom I said, &#8216;After me comes a man who ranks before me, because he was before me.&#8217; <span class="verse-num" id="v43001031-1">31&nbsp;</span>I myself did not know him, but for this purpose I came baptizing with water, that he might be revealed to Israel.&#8221; <span class="verse-num" id="v43001032-1">32&nbsp;</span>And John bore witness: &#8220;I saw the Spirit descend from heaven like a dove, and it remained on him. <span class="verse-num" id="v43001033-1">33&nbsp;</span>I myself did not know him, but he who sent me to baptize with water said to me, &#8216;He on whom you see the Spirit descend and remain, this is he who baptizes with the Holy Spirit.&#8217; <span class="verse-num" id="v43001034-1">34&nbsp;</span>And I have seen and have borne witness that this is the Son of God.&#8221;</p>
23
+ <h3 id="p43001035.01-1">Jesus Calls the First Disciples</h3>
24
+ <p id="p43001035.06-1"><span class="verse-num" id="v43001035-1">35&nbsp;</span>The next day again John was standing with two of his disciples, <span class="verse-num" id="v43001036-1">36&nbsp;</span>and he looked at Jesus as he walked by and said, &#8220;Behold, the Lamb of God!&#8221; <span class="verse-num" id="v43001037-1">37&nbsp;</span>The two disciples heard him say this, and they followed Jesus. <span class="verse-num" id="v43001038-1">38&nbsp;</span>Jesus turned and saw them following and said to them, <span class="woc">&#8220;What are you seeking?&#8221;</span> And they said to him, &#8220;Rabbi&#8221; (which means Teacher), &#8220;where are you staying?&#8221; <span class="verse-num" id="v43001039-1">39&nbsp;</span>He said to them, <span class="woc">&#8220;Come and you will see.&#8221;</span> So they came and saw where he was staying, and they stayed with him that day, for it was about the tenth hour.<span class="footnote">&nbsp;<a href="#f7" id="b7" title="That is, about 4 P.M.">[7]</a></span> <span class="verse-num" id="v43001040-1">40&nbsp;</span>One of the two who heard John speak and followed Jesus<span class="footnote">&nbsp;<a href="#f8" id="b8" title="Greek 'him'">[8]</a></span> was Andrew, Simon Peter's brother. <span class="verse-num" id="v43001041-1">41&nbsp;</span>He first found his own brother Simon and said to him, &#8220;We have found the Messiah&#8221; (which means Christ). <span class="verse-num" id="v43001042-1">42&nbsp;</span>He brought him to Jesus. Jesus looked at him and said, <span class="woc">&#8220;So you are Simon the son of John? You shall be called Cephas&#8221;</span> (which means Peter<span class="footnote">&nbsp;<a href="#f9" id="b9" title="'Cephas' and 'Peter' are from the word for 'rock' in Aramaic and Greek, respectively">[9]</a></span>).</p>
25
+ <h3 id="p43001043.01-1">Jesus Calls Philip and Nathanael</h3>
26
+ <p id="p43001043.06-1"><span class="verse-num" id="v43001043-1">43&nbsp;</span>The next day Jesus decided to go to Galilee. He found Philip and said to him, <span class="woc">&#8220;Follow me.&#8221;</span> <span class="verse-num" id="v43001044-1">44&nbsp;</span>Now Philip was from Bethsaida, the city of Andrew and Peter. <span class="verse-num" id="v43001045-1">45&nbsp;</span>Philip found Nathanael and said to him, &#8220;We have found him of whom Moses in the Law and also the prophets wrote, Jesus of Nazareth, the son of Joseph.&#8221; <span class="verse-num" id="v43001046-1">46&nbsp;</span>Nathanael said to him, &#8220;Can anything good come out of Nazareth?&#8221; Philip said to him, &#8220;Come and see.&#8221; <span class="verse-num" id="v43001047-1">47&nbsp;</span>Jesus saw Nathanael coming toward him and said of him, <span class="woc">&#8220;Behold, an Israelite indeed, in whom there is no deceit!&#8221;</span> <span class="verse-num" id="v43001048-1">48&nbsp;</span>Nathanael said to him, &#8220;How do you know me?&#8221; Jesus answered him, <span class="woc">&#8220;Before Philip called you, when you were under the fig tree, I saw you.&#8221;</span> <span class="verse-num" id="v43001049-1">49&nbsp;</span>Nathanael answered him, &#8220;Rabbi, you are the Son of God! You are the King of Israel!&#8221; <span class="verse-num" id="v43001050-1">50&nbsp;</span>Jesus answered him, <span class="woc">&#8220;Because I said to you, &#8216;I saw you under the fig tree,&#8217; do you believe? You will see greater things than these.&#8221;</span> <span class="verse-num" id="v43001051-1">51&nbsp;</span>And he said to him, <span class="woc">&#8220;Truly, truly, I say to you,<span class="footnote">&nbsp;<a href="#f10" id="b10" title="The Greek for 'you' is plural; twice in this verse">[10]</a></span> you will see heaven opened, and the angels of God ascending and descending on the Son of Man.&#8221;</span> (<a href="http://www.esv.org" class="copyright">ESV</a>)</p>
27
+ </div>
28
+ <div class="footnotes">
29
+ <h3>Footnotes</h3>
30
+ <p><span class="footnote"><a href="#b1" id="f1">[1]</a></span> <span class="footnote-ref">1:4</span> Or <em>was not any thing made. That which has been made was life in him</em>
31
+ <br />
32
+ <span class="footnote"><a href="#b2" id="f2">[2]</a></span> <span class="footnote-ref">1:11</span> Greek <em>to his own things</em>; that is, to his own domain, or to his own people
33
+ <br />
34
+ <span class="footnote"><a href="#b3" id="f3">[3]</a></span> <span class="footnote-ref">1:11</span> <em>People</em> is implied in Greek
35
+ <br />
36
+ <span class="footnote"><a href="#b4" id="f4">[4]</a></span> <span class="footnote-ref">1:18</span> Or <em>the only One, who is God</em>; some manuscripts <em>the only Son</em>
37
+ <br />
38
+ <span class="footnote"><a href="#b5" id="f5">[5]</a></span> <span class="footnote-ref">1:18</span> Greek <em>in the bosom of the Father</em>
39
+ <br />
40
+ <span class="footnote"><a href="#b6" id="f6">[6]</a></span> <span class="footnote-ref">1:23</span> Or <em>crying out, &#8216;In the wilderness make straight</em>
41
+ <br />
42
+ <span class="footnote"><a href="#b7" id="f7">[7]</a></span> <span class="footnote-ref">1:39</span> That is, about <span class="small-caps">4 p.m.</span>
43
+ <br />
44
+ <span class="footnote"><a href="#b8" id="f8">[8]</a></span> <span class="footnote-ref">1:40</span> Greek <em>him</em>
45
+ <br />
46
+ <span class="footnote"><a href="#b9" id="f9">[9]</a></span> <span class="footnote-ref">1:42</span> <em>Cephas</em> and <em>Peter</em> are from the word for <em>rock</em> in Aramaic and Greek, respectively
47
+ <br />
48
+ <span class="footnote"><a href="#b10" id="f10">[10]</a></span> <span class="footnote-ref">1:51</span> The Greek for <em>you</em> is plural; twice in this verse
49
+ </p>
50
+ </div>
51
+ </div>