scholar 0.1.0 → 0.1.1
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/.travis.yml +2 -3
- data/Gemfile +11 -8
- data/Gemfile.lock +33 -9
- data/README.md +56 -14
- data/lib/scholar/citation.rb +24 -1
- data/lib/scholar/search.rb +75 -0
- data/lib/scholar/source.rb +6 -3
- data/lib/scholar/utilities/contributor.rb +34 -5
- data/lib/scholar/utilities/contributor_list.rb +2 -0
- data/lib/scholar/utilities/data.rb +2 -0
- data/lib/scholar/utilities/formatters.rb +2 -0
- data/lib/scholar.rb +5 -0
- data/scholar.gemspec +3 -1
- data/spec/scholar/search_spec.rb +21 -0
- data/spec/scholar/utilities/data_spec.rb +1 -1
- data/spec/spec_helper.rb +11 -0
- metadata +39 -4
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -3,18 +3,21 @@ source 'https://rubygems.org'
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :development, :test do
|
6
|
-
gem 'rake'
|
7
|
-
gem 'pry'
|
8
|
-
gem 'log_buddy'
|
6
|
+
gem 'rake', '~> 10.0'
|
7
|
+
gem 'pry', '~> 0.9.11'
|
8
|
+
gem 'log_buddy', '~> 0.7.0'
|
9
9
|
end
|
10
10
|
|
11
11
|
group :test do
|
12
|
-
gem 'rspec'
|
12
|
+
gem 'rspec', '~> 2.12.0'
|
13
13
|
|
14
|
-
gem '
|
14
|
+
gem 'vcr', '~> 2.4.0'
|
15
|
+
gem 'webmock', '~> 1.8.0'
|
15
16
|
|
16
|
-
gem '
|
17
|
-
gem 'fuubar'
|
17
|
+
gem 'factory_girl', '~> 4.2.0'
|
18
18
|
|
19
|
-
gem '
|
19
|
+
gem 'spork', '~> 0.9.2'
|
20
|
+
gem 'fuubar', '~> 1.1.0'
|
21
|
+
|
22
|
+
gem 'cane', :platforms => :mri
|
20
23
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
scholar (0.1.
|
4
|
+
scholar (0.1.1)
|
5
5
|
activesupport (~> 3.2.11)
|
6
|
+
faraday (~> 0.8.7)
|
7
|
+
faraday_middleware (~> 0.9.0)
|
6
8
|
|
7
9
|
GEM
|
8
10
|
remote: https://rubygems.org/
|
@@ -10,12 +12,19 @@ GEM
|
|
10
12
|
activesupport (3.2.11)
|
11
13
|
i18n (~> 0.6)
|
12
14
|
multi_json (~> 1.0)
|
15
|
+
addressable (2.3.3)
|
13
16
|
cane (2.5.0)
|
14
17
|
parallel
|
15
18
|
coderay (1.0.8)
|
19
|
+
crack (0.3.2)
|
16
20
|
diff-lcs (1.1.3)
|
17
21
|
factory_girl (4.2.0)
|
18
22
|
activesupport (>= 3.0.0)
|
23
|
+
faraday (0.8.7)
|
24
|
+
multipart-post (~> 1.1)
|
25
|
+
faraday_middleware (0.9.0)
|
26
|
+
faraday (>= 0.7.4, < 0.9)
|
27
|
+
ffi (1.6.0-java)
|
19
28
|
fuubar (1.1.0)
|
20
29
|
rspec (~> 2.0)
|
21
30
|
rspec-instafail (~> 0.2.0)
|
@@ -24,11 +33,17 @@ GEM
|
|
24
33
|
log_buddy (0.7.0)
|
25
34
|
method_source (0.8.1)
|
26
35
|
multi_json (1.5.0)
|
36
|
+
multipart-post (1.2.0)
|
27
37
|
parallel (0.6.1)
|
28
38
|
pry (0.9.11.4)
|
29
39
|
coderay (~> 1.0.5)
|
30
40
|
method_source (~> 0.8)
|
31
41
|
slop (~> 3.4)
|
42
|
+
pry (0.9.11.4-java)
|
43
|
+
coderay (~> 1.0.5)
|
44
|
+
method_source (~> 0.8)
|
45
|
+
slop (~> 3.4)
|
46
|
+
spoon (~> 0.0)
|
32
47
|
rake (10.0.3)
|
33
48
|
rspec (2.12.0)
|
34
49
|
rspec-core (~> 2.12.0)
|
@@ -38,21 +53,30 @@ GEM
|
|
38
53
|
rspec-expectations (2.12.1)
|
39
54
|
diff-lcs (~> 1.1.3)
|
40
55
|
rspec-instafail (0.2.4)
|
41
|
-
rspec-mocks (2.12.
|
56
|
+
rspec-mocks (2.12.2)
|
42
57
|
ruby-progressbar (1.0.2)
|
43
58
|
slop (3.4.3)
|
59
|
+
spoon (0.0.3)
|
60
|
+
ffi
|
44
61
|
spork (0.9.2)
|
62
|
+
vcr (2.4.0)
|
63
|
+
webmock (1.8.11)
|
64
|
+
addressable (>= 2.2.7)
|
65
|
+
crack (>= 0.1.7)
|
45
66
|
|
46
67
|
PLATFORMS
|
68
|
+
java
|
47
69
|
ruby
|
48
70
|
|
49
71
|
DEPENDENCIES
|
50
72
|
cane
|
51
|
-
factory_girl
|
52
|
-
fuubar
|
53
|
-
log_buddy
|
54
|
-
pry
|
55
|
-
rake
|
56
|
-
rspec
|
73
|
+
factory_girl (~> 4.2.0)
|
74
|
+
fuubar (~> 1.1.0)
|
75
|
+
log_buddy (~> 0.7.0)
|
76
|
+
pry (~> 0.9.11)
|
77
|
+
rake (~> 10.0)
|
78
|
+
rspec (~> 2.12.0)
|
57
79
|
scholar!
|
58
|
-
spork
|
80
|
+
spork (~> 0.9.2)
|
81
|
+
vcr (~> 2.4.0)
|
82
|
+
webmock (~> 1.8.0)
|
data/README.md
CHANGED
@@ -1,6 +1,32 @@
|
|
1
1
|
# Scholar [](https://travis-ci.org/noted/scholar)
|
2
2
|
|
3
|
-
Scholar is a Ruby library for building [MLA citations](http://www.mla.org/) for scholarly works.
|
3
|
+
Scholar is a Ruby library for building [MLA citations](http://www.mla.org/) for scholarly works. Just pass Scholar your data and it'll do the rest.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your `Gemfile`:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'scholar'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then run:
|
14
|
+
|
15
|
+
```
|
16
|
+
$ bundle install
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install system-wide with:
|
20
|
+
|
21
|
+
```
|
22
|
+
$ gem install scholar
|
23
|
+
```
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
### Citation
|
28
|
+
|
29
|
+
To create a citation, create a new `Citation` object.
|
4
30
|
|
5
31
|
```ruby
|
6
32
|
salinger = Scholar::Citation.new({
|
@@ -22,18 +48,20 @@ salinger = Scholar::Citation.new({
|
|
22
48
|
salinger.html # => Salinger, J. D. <em>Catcher in the Rye</em>. Boston: Little, Brown, 1995.
|
23
49
|
```
|
24
50
|
|
25
|
-
|
51
|
+
`Scholar::Citation.new` only takes a `Hash` with the attributes associated with the source.
|
26
52
|
|
27
|
-
|
53
|
+
### Required Keys
|
28
54
|
|
29
|
-
|
55
|
+
#### Global Attributes
|
30
56
|
|
31
|
-
All source types can take these fields.
|
57
|
+
All source types can (and must) take these fields.
|
32
58
|
|
33
|
-
|
34
|
-
|
59
|
+
Key | Description
|
60
|
+
----------------|-----------------------------------------
|
61
|
+
`:type` | The type of publication you're citing ([see the wiki for a list of supported types](types)). Must be a `Symbol` object.
|
62
|
+
`:contributors` | An array of contributors (see below for details). If there are no contributors, pass an empty `Array`.
|
35
63
|
|
36
|
-
|
64
|
+
##### Contributors
|
37
65
|
|
38
66
|
The `:contributors` key is an array of hashes that define contributors. Here's an example.
|
39
67
|
|
@@ -69,13 +97,26 @@ The `:contributors` key is an array of hashes that define contributors. Here's a
|
|
69
97
|
]
|
70
98
|
```
|
71
99
|
|
72
|
-
Each hash can take the following
|
100
|
+
Each hash can take the following key-values:
|
73
101
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
102
|
+
Key | Description
|
103
|
+
----------|---------------------------------------
|
104
|
+
`:role` | Must be `:author`, `:editor`, `:translator`, `:compiler`.
|
105
|
+
`:first` | The contributor's first name (name).
|
106
|
+
`:middle` | The contributor's middle name (will be shortened to a middle initial).
|
107
|
+
`:last` | The contributor's last name (surname).
|
108
|
+
`:suffix` | Any suffixes or titles the contributor has ("PhD", "Esq", "Jr", "KBD", et cetera). Omit any periods.
|
109
|
+
|
110
|
+
## Supported Ruby Versions
|
111
|
+
|
112
|
+
Scholar is tested on MRI version 1.9.2, 1.9.3, and 2.0.0.
|
113
|
+
|
114
|
+
### Search
|
115
|
+
|
116
|
+
```ruby
|
117
|
+
search = Scholar::Search.new("harry potter")
|
118
|
+
search.results # => [#<Scholar::Citation>, #<Scholar::Citation>, ...]
|
119
|
+
```
|
79
120
|
|
80
121
|
## Contributing
|
81
122
|
|
@@ -89,6 +130,7 @@ Each hash can take the following fields:
|
|
89
130
|
8. Add, commit, and push your changes.
|
90
131
|
9. [Submit a pull request.][pr]
|
91
132
|
|
133
|
+
[types]: https://github.com/noted/scholar/wiki/Supported-Types
|
92
134
|
[fork]: http://help.github.com/fork-a-repo/
|
93
135
|
[branch]: http://learn.github.com/p/branching.html
|
94
136
|
[pr]: http://help.github.com/send-pull-requests/
|
data/lib/scholar/citation.rb
CHANGED
@@ -4,6 +4,9 @@ module Scholar
|
|
4
4
|
# citation and the HTML citation itself.
|
5
5
|
class Citation
|
6
6
|
|
7
|
+
# The raw hash given Citation.
|
8
|
+
attr_reader :raw
|
9
|
+
|
7
10
|
# The pieces of data in the Citation.
|
8
11
|
attr_reader :attributes
|
9
12
|
|
@@ -41,9 +44,13 @@ module Scholar
|
|
41
44
|
source = "Scholar::Sources::#{options[:type].to_s.camelize}".constantize
|
42
45
|
|
43
46
|
@attributes = options
|
47
|
+
@raw = @attributes.clone
|
44
48
|
@attributes.delete(:type)
|
45
49
|
|
46
|
-
@attributes
|
50
|
+
if @attributes[:contributors]
|
51
|
+
@attributes = Scholar::Utilities.contributors!(@attributes)
|
52
|
+
end
|
53
|
+
|
47
54
|
@attributes = Scholar::Utilities.order!(@attributes, source.sequence)
|
48
55
|
|
49
56
|
attributes = @attributes.clone
|
@@ -51,5 +58,21 @@ module Scholar
|
|
51
58
|
|
52
59
|
@html = Scholar::Utilities.concatenate!(attributes)
|
53
60
|
end
|
61
|
+
|
62
|
+
# Returns the Citation object in Hash form.
|
63
|
+
def to_hash
|
64
|
+
hash = {}
|
65
|
+
|
66
|
+
instance_variables.each do |v|
|
67
|
+
hash[v.to_s[1..-1].to_sym] = instance_variable_get(v)
|
68
|
+
end
|
69
|
+
|
70
|
+
hash
|
71
|
+
end
|
72
|
+
|
73
|
+
# Returns the Citation object in JSON form.
|
74
|
+
def to_json
|
75
|
+
hash = self.to_hash.to_json
|
76
|
+
end
|
54
77
|
end
|
55
78
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Scholar
|
2
|
+
|
3
|
+
# A Search object containing search results
|
4
|
+
# for a query (currently only searches the
|
5
|
+
# Google Books API).
|
6
|
+
class Search
|
7
|
+
|
8
|
+
# The query performed.
|
9
|
+
attr_reader :query
|
10
|
+
|
11
|
+
# The results of the query.
|
12
|
+
attr_reader :results
|
13
|
+
|
14
|
+
# Searches for sources in Google Books.
|
15
|
+
#
|
16
|
+
# ==== Attributes
|
17
|
+
#
|
18
|
+
# * +query+ - The search term.
|
19
|
+
def initialize(query)
|
20
|
+
@@connection = Faraday.new(:url => "https://www.googleapis.com") do |f|
|
21
|
+
f.request :json
|
22
|
+
f.response :json, :content_type => /\bjson$/
|
23
|
+
f.adapter Faraday.default_adapter
|
24
|
+
end
|
25
|
+
|
26
|
+
# Remember the query.
|
27
|
+
@query = query
|
28
|
+
|
29
|
+
# Get the raw data.
|
30
|
+
@results = perform!(query)
|
31
|
+
|
32
|
+
# Turn that data into something a Citation class can understand.
|
33
|
+
@results = format!(@results)
|
34
|
+
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def perform!(query)
|
41
|
+
request = @@connection.get do |r|
|
42
|
+
r.url "/books/v1/volumes", :q => query
|
43
|
+
end
|
44
|
+
|
45
|
+
request.body
|
46
|
+
end
|
47
|
+
|
48
|
+
def format!(hash)
|
49
|
+
arr = []
|
50
|
+
|
51
|
+
hash["items"].each do |i|
|
52
|
+
vol = i["volumeInfo"]
|
53
|
+
|
54
|
+
authors = vol["authors"]
|
55
|
+
|
56
|
+
contributors = []
|
57
|
+
authors.each do |a|
|
58
|
+
contributors << Scholar::Utilities::Contributor.new(a).attributes
|
59
|
+
end
|
60
|
+
|
61
|
+
citation = Scholar::Citation.new({
|
62
|
+
:type => :book,
|
63
|
+
:contributors => contributors,
|
64
|
+
:title => vol["title"],
|
65
|
+
:publisher => vol["publisher"],
|
66
|
+
:year => vol["publishedDate"][0,4]
|
67
|
+
})
|
68
|
+
|
69
|
+
arr << citation
|
70
|
+
end
|
71
|
+
|
72
|
+
arr
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/lib/scholar/source.rb
CHANGED
@@ -9,7 +9,8 @@ module Scholar
|
|
9
9
|
#
|
10
10
|
# ==== Attributes
|
11
11
|
#
|
12
|
-
# * +arr+ - Array of Symbols (keys). This is the order the hash's key
|
12
|
+
# * +arr+ - Array of Symbols (keys). This is the order the hash's key
|
13
|
+
# will be in.
|
13
14
|
def sequence(arr = nil)
|
14
15
|
unless arr.nil?
|
15
16
|
@@sequence = arr
|
@@ -22,7 +23,8 @@ module Scholar
|
|
22
23
|
#
|
23
24
|
# ==== Attributes
|
24
25
|
#
|
25
|
-
# * +block+ - A block of +rule+ definitions. The rule definition should
|
26
|
+
# * +block+ - A block of +rule+ definitions. The rule definition should
|
27
|
+
# call a method in Scholar::Utilities::Formatters.
|
26
28
|
#
|
27
29
|
# ==== Example
|
28
30
|
#
|
@@ -44,7 +46,8 @@ module Scholar
|
|
44
46
|
# ==== Attributes
|
45
47
|
#
|
46
48
|
# * +key+ - The key of the hash to take the action on. Symbol.
|
47
|
-
# * +action+ - The action to take on the key. Should be a method within
|
49
|
+
# * +action+ - The action to take on the key. Should be a method within
|
50
|
+
# Scholar::Utilities::Formatters.
|
48
51
|
def rule(key, &action)
|
49
52
|
@@rules << [key, action]
|
50
53
|
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
module Scholar
|
2
|
+
|
3
|
+
# Generic utilities.
|
2
4
|
class Utilities
|
3
5
|
|
4
6
|
# A person associated with a work.
|
@@ -14,23 +16,33 @@ module Scholar
|
|
14
16
|
#
|
15
17
|
# ==== Attributes
|
16
18
|
#
|
17
|
-
# * +
|
19
|
+
# * +data+ - The data associated with the Contributor.
|
18
20
|
# * +order+ - Last-name first (+:last+) or first-name first (+:first+).
|
19
21
|
#
|
20
22
|
# ==== Options
|
21
23
|
#
|
22
24
|
# * +:first+ - The name of the Contributor.
|
23
|
-
# * +:middle+ - The middle name of the Contributor.
|
25
|
+
# * +:middle+ - The middle name of the Contributor.
|
26
|
+
# Will be shortened to an initial.
|
24
27
|
# * +:last+ - The surname of the Contributor.
|
25
28
|
# * +:suffix+ - The suffix of the Contributor (PhD, Esq, etc).
|
26
29
|
#
|
27
30
|
# ==== Examples
|
28
31
|
#
|
29
|
-
# Scholar::Utilities::Contributor.new({
|
30
|
-
|
32
|
+
# Scholar::Utilities::Contributor.new({
|
33
|
+
# :first => "Douglas",
|
34
|
+
# :last => "Adams"
|
35
|
+
# })
|
36
|
+
def initialize(data, order = :first)
|
37
|
+
if data.is_a?(String)
|
38
|
+
data = hash!(data)
|
39
|
+
|
40
|
+
data[:role] = :author
|
41
|
+
end
|
42
|
+
|
31
43
|
@order = order
|
32
44
|
|
33
|
-
@attributes = order!(
|
45
|
+
@attributes = order!(data)
|
34
46
|
@name = name!(@attributes)
|
35
47
|
end
|
36
48
|
|
@@ -54,6 +66,23 @@ module Scholar
|
|
54
66
|
|
55
67
|
private
|
56
68
|
|
69
|
+
# Make a Hash out of a String.
|
70
|
+
def hash!(str)
|
71
|
+
data = str.split(" ")
|
72
|
+
|
73
|
+
result = Hash.new
|
74
|
+
|
75
|
+
result[:first] = data.first
|
76
|
+
|
77
|
+
result[:last] = data.last
|
78
|
+
|
79
|
+
if data[2]
|
80
|
+
result[:middle] = data[1]
|
81
|
+
end
|
82
|
+
|
83
|
+
result
|
84
|
+
end
|
85
|
+
|
57
86
|
# Order according to the sequence.
|
58
87
|
def order!(hash, method = @order)
|
59
88
|
if method == :last
|
data/lib/scholar.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
require 'json'
|
2
|
+
|
2
3
|
require 'active_support/all'
|
3
4
|
|
5
|
+
require 'faraday'
|
6
|
+
require 'faraday_middleware'
|
7
|
+
|
4
8
|
require_relative 'scholar/utilities'
|
5
9
|
require_relative 'scholar/citation'
|
6
10
|
require_relative 'scholar/source'
|
11
|
+
require_relative 'scholar/search'
|
7
12
|
|
8
13
|
# Allows for the creation of scholarly MLA citations.
|
9
14
|
module Scholar
|
data/scholar.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "scholar"
|
8
|
-
gem.version = "0.1.
|
8
|
+
gem.version = "0.1.1"
|
9
9
|
gem.authors = ["Ethan Turkeltaub"]
|
10
10
|
gem.email = ["ethan.turkeltaub@gmail.com"]
|
11
11
|
gem.description = %q{Generate valid MLA citations.}
|
@@ -19,4 +19,6 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
21
|
gem.add_dependency 'activesupport', '~> 3.2.11'
|
22
|
+
gem.add_dependency 'faraday', '~> 0.8.7'
|
23
|
+
gem.add_dependency 'faraday_middleware', '~> 0.9.0'
|
22
24
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Scholar::Search do
|
4
|
+
before do
|
5
|
+
VCR.insert_cassette 'search', :record => :all
|
6
|
+
end
|
7
|
+
|
8
|
+
describe ".new" do
|
9
|
+
let(:search) do
|
10
|
+
Scholar::Search.new("foobar")
|
11
|
+
end
|
12
|
+
|
13
|
+
it { search.query.should eql "foobar" }
|
14
|
+
it { search.results.should be_an_instance_of Array }
|
15
|
+
it { search.results[0].should be_an_instance_of Scholar::Citation }
|
16
|
+
end
|
17
|
+
|
18
|
+
after do
|
19
|
+
VCR.eject_cassette
|
20
|
+
end
|
21
|
+
end
|
@@ -81,7 +81,7 @@ describe Scholar::Utilities::Data do
|
|
81
81
|
|
82
82
|
describe "#order!" do
|
83
83
|
let(:hash) do
|
84
|
-
{ :foobar => "
|
84
|
+
{ :foobar => "Foobar.", :bar => "Hello there.", :abc => "123" }
|
85
85
|
end
|
86
86
|
|
87
87
|
let(:sequence) do
|
data/spec/spec_helper.rb
CHANGED
@@ -2,6 +2,9 @@ require 'spork'
|
|
2
2
|
|
3
3
|
Spork.prefork do
|
4
4
|
require 'rspec'
|
5
|
+
require 'vcr'
|
6
|
+
require 'webmock/rspec'
|
7
|
+
|
5
8
|
require 'factory_girl'
|
6
9
|
|
7
10
|
require 'log_buddy'
|
@@ -13,4 +16,12 @@ Spork.prefork do
|
|
13
16
|
RSpec.configure do |c|
|
14
17
|
c.include FactoryGirl::Syntax::Methods
|
15
18
|
end
|
19
|
+
|
20
|
+
VCR.configure do |c|
|
21
|
+
c.configure_rspec_metadata!
|
22
|
+
|
23
|
+
c.cassette_library_dir = 'spec/cassettes'
|
24
|
+
c.default_cassette_options = { :record => :new_episodes }
|
25
|
+
c.hook_into :webmock
|
26
|
+
end
|
16
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scholar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -27,6 +27,38 @@ dependencies:
|
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 3.2.11
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: faraday
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.8.7
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.8.7
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: faraday_middleware
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.9.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.9.0
|
30
62
|
description: Generate valid MLA citations.
|
31
63
|
email:
|
32
64
|
- ethan.turkeltaub@gmail.com
|
@@ -45,6 +77,7 @@ files:
|
|
45
77
|
- Rakefile
|
46
78
|
- lib/scholar.rb
|
47
79
|
- lib/scholar/citation.rb
|
80
|
+
- lib/scholar/search.rb
|
48
81
|
- lib/scholar/source.rb
|
49
82
|
- lib/scholar/sources/book.rb
|
50
83
|
- lib/scholar/utilities.rb
|
@@ -55,6 +88,7 @@ files:
|
|
55
88
|
- scholar.gemspec
|
56
89
|
- spec/factories/contributor.rb
|
57
90
|
- spec/factories/contributor_list.rb
|
91
|
+
- spec/scholar/search_spec.rb
|
58
92
|
- spec/scholar/source_spec.rb
|
59
93
|
- spec/scholar/sources/book_spec.rb
|
60
94
|
- spec/scholar/utilities/contributor_list_spec.rb
|
@@ -77,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
111
|
version: '0'
|
78
112
|
segments:
|
79
113
|
- 0
|
80
|
-
hash:
|
114
|
+
hash: 1067264813
|
81
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
116
|
none: false
|
83
117
|
requirements:
|
@@ -86,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
120
|
version: '0'
|
87
121
|
segments:
|
88
122
|
- 0
|
89
|
-
hash:
|
123
|
+
hash: 1067264813
|
90
124
|
requirements: []
|
91
125
|
rubyforge_project:
|
92
126
|
rubygems_version: 1.8.25
|
@@ -96,6 +130,7 @@ summary: Generate valid MLA citations.
|
|
96
130
|
test_files:
|
97
131
|
- spec/factories/contributor.rb
|
98
132
|
- spec/factories/contributor_list.rb
|
133
|
+
- spec/scholar/search_spec.rb
|
99
134
|
- spec/scholar/source_spec.rb
|
100
135
|
- spec/scholar/sources/book_spec.rb
|
101
136
|
- spec/scholar/utilities/contributor_list_spec.rb
|