cite-me 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cite_me.rb +28 -18
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4294bdd7411a11b4f54a5999609c34463df298e4
4
- data.tar.gz: 50bbdab53ff45ebd1f6ca0b841f4c5454f0e0ade
3
+ metadata.gz: 1b0db38c1ffd2e754041782d7e6267d7a789f83e
4
+ data.tar.gz: a0d4bb3526f8d0c537007f6119255a6b2ca08a7e
5
5
  SHA512:
6
- metadata.gz: acd33ff621f50748fd2af269138a42a00955845a6245870a2643bd24ec9787556cc43a338c4da64a8084c5de0c3d5a4fda5d877ee05af6142dd1d45ce81bdbae
7
- data.tar.gz: 4a8e6e11653cf1911ee0ca63682ec223437f62adc94a11077d912ec147fbd8003875b1195cdf1eecbcb2b2504bc34d09b53482f99c1dac5305460a4a3f6d92ac
6
+ metadata.gz: cd7d91f316f65f7514205aaf2977a2d2dbf3ccc4dde63a298468d843a3a1d409514a93771956b4645062bbe94f16ab345793ad74f71896bad9f9cb0c0a5277d2
7
+ data.tar.gz: 31e27f25ad696956347def3e2e901494faac56f9cfec9f567821947c74ec70514fd23467470f41a80e28943820f3e05ef989413d7612898a2ef36e0c3717f1d1
data/lib/cite_me.rb CHANGED
@@ -1,7 +1,8 @@
1
+ require 'pry'
1
2
  class Cite_Me
2
3
  # Usage:
3
4
  # >> citation = Cite_Me.new
4
- # >> source = { type: 'book',
5
+ # >> source = { source_type: 'book',
5
6
  # authors: ['Jacob Smith'],
6
7
  # title: 'The Art of Writing Code',
7
8
  # city_of_publication: 'Indianapolis',
@@ -19,22 +20,22 @@ class Cite_Me
19
20
  end
20
21
 
21
22
  def generate_citation(options)
22
- case options[:type]
23
+ clean_options = clean_hash(options)
24
+ case clean_options[:source_type]
23
25
  when 'book'
24
- mla_book_generate_citation(options)
26
+ mla_book_generate_citation(clean_options)
25
27
  when 'magazine'
26
- mla_magazine_generate_citation(options)
28
+ mla_magazine_generate_citation(clean_options)
27
29
  when 'web'
28
- mla_web_generate_citation(options)
30
+ mla_web_generate_citation(clean_options)
29
31
  end
30
32
  end
31
33
 
32
34
  private
33
35
 
34
- def mla_book_generate_citation(options)
35
- clean_options = clean_hash(options)
36
+ def mla_book_generate_citation(clean_options)
36
37
  output = ''
37
- output << authors(clean_options[:authors]) || authors(clean_options[:author])
38
+ output << author_info(clean_options)
38
39
  output << "<i>" + clean_options[:title] + "</i>. " if clean_options[:title]
39
40
  output << clean_options[:city_of_publication] + ": " if clean_options[:city_of_publication]
40
41
  output << clean_options[:publisher] + ", " if clean_options[:publisher]
@@ -44,10 +45,9 @@ class Cite_Me
44
45
  output
45
46
  end
46
47
 
47
- def mla_magazine_generate_citation(options)
48
- clean_options = clean_hash(options)
48
+ def mla_magazine_generate_citation(clean_options)
49
49
  output = ''
50
- output << authors(clean_options[:authors]) || authors(clean_options[:author])
50
+ output << author_info(clean_options)
51
51
  output << %{"#{clean_options[:title_of_article]}." }
52
52
  output << "<i>" + clean_options[:title_of_periodical] + "</i> "
53
53
  output << clean_options[:publication_date] + ": "
@@ -57,12 +57,11 @@ class Cite_Me
57
57
  output
58
58
  end
59
59
 
60
- def mla_web_generate_citation(options)
61
- clean_options = clean_hash(options)
60
+ def mla_web_generate_citation(clean_options)
62
61
  output = ''
63
- output << authors(clean_options[:authors]) || authors(clean_options[:author])
62
+ output << author_info(clean_options)
64
63
  output << "<i>" + clean_options[:name_of_site] + "</i>. "
65
- output << clean_options[:name_of_organization] + ", "
64
+ output << clean_options[:name_of_organization] + ", "
66
65
  output << clean_options[:date_of_creation] + ". "
67
66
  output << 'Web. '
68
67
  output << clean_options[:date_of_access] + "."
@@ -98,7 +97,11 @@ class Cite_Me
98
97
  author_string
99
98
  end
100
99
 
101
- def year_of_publication(option)
100
+ def author_info(clean_options)
101
+ author_info = clean_options[:authors] ? authors(clean_options[:authors]) : authors(clean_options[:author])
102
+ end
103
+
104
+ def year_of_publication(option)
102
105
  if option
103
106
  option.to_s + ". "
104
107
  else
@@ -108,11 +111,18 @@ class Cite_Me
108
111
 
109
112
  def clean_hash(options)
110
113
  clean_options = {}
114
+ options = options.attributes if !options.is_a? Hash
115
+
116
+ ## delete any " in key (usually from ActiveRecord object) and turn it to a symbol
117
+ ## we also call to_s on any present values in case a date or year is saved
118
+ ## as an integer in the database
111
119
  options.map do |key, value|
112
120
  if value == ''
113
- clean_options[key] = nil
121
+ cleaned_key = ( key.is_a? Symbol ) ? key : key.delete('"').to_sym
122
+ clean_options[cleaned_key] = nil
114
123
  else
115
- clean_options[key] = value
124
+ cleaned_key = ( key.is_a? Symbol ) ? key : key.delete('"').to_sym
125
+ clean_options[cleaned_key] = value
116
126
  end
117
127
  end
118
128
  clean_options
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cite-me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Smith
@@ -10,8 +10,8 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-02-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Properly MLA formatted citations (suitable for a bibliography) from a
14
- passed hash.
13
+ description: Properly MLA formatted citations (suitable for a bibliography) from ActiveRecord
14
+ object.attributes or hash.
15
15
  email: jacob.wesley.smith@gmail.com
16
16
  executables: []
17
17
  extensions: []