oeis 0.0.2
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.md +42 -0
- data/Rakefile +1 -0
- data/lib/oeis.rb +32 -0
- data/lib/oeis/version.rb +3 -0
- data/oeis.gemspec +24 -0
- metadata +74 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# OEIS
|
2
|
+
|
3
|
+
## About
|
4
|
+
|
5
|
+
This a gem to interface the [On-Line Encyclopedia of Integer Sequences](http://oeis.org)
|
6
|
+
(OEIS). It allows you to search for a documented sequence using a Ruby Fixnum Array as
|
7
|
+
input.
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
> require 'oeis'
|
12
|
+
> l = 3.upto(10).collect { |i| i*i }
|
13
|
+
> result = OEIS::Search(l)
|
14
|
+
|
15
|
+
> p result.title
|
16
|
+
The squares: a(n) = n^2.
|
17
|
+
> p result.id
|
18
|
+
A000290
|
19
|
+
> p result.sequence
|
20
|
+
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ...
|
21
|
+
|
22
|
+
## Installation
|
23
|
+
|
24
|
+
git clone git@github.com:prezjordan/oeis.git
|
25
|
+
cd oeis
|
26
|
+
bundle
|
27
|
+
gem build oeis.gemspec
|
28
|
+
gem install oeis-0.0.1
|
29
|
+
|
30
|
+
**OR**
|
31
|
+
|
32
|
+
gem install oeis
|
33
|
+
|
34
|
+
## Why?
|
35
|
+
|
36
|
+
I started working on this gem after my roommate's snoring kept me from sleeping. It is my
|
37
|
+
first gem, so there's a *very* good chance I did something wrong, or did something
|
38
|
+
not-so-right.
|
39
|
+
|
40
|
+
Numbers have always been a passion of mine, so this servers as a simple educational tool.
|
41
|
+
Generating numbers is fun, seeing various properties of the numbers you just generated is
|
42
|
+
even cooler.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/lib/oeis.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require "oeis/version"
|
2
|
+
require 'nokogiri'
|
3
|
+
require 'open-uri'
|
4
|
+
|
5
|
+
module OEIS
|
6
|
+
# Your code goes here...
|
7
|
+
class OEIS
|
8
|
+
|
9
|
+
BASE_URL = 'http://oeis.org/search?q='
|
10
|
+
|
11
|
+
attr_accessor :id, :title, :sequence
|
12
|
+
|
13
|
+
def initialize(l)
|
14
|
+
url = BASE_URL + l.join(',')
|
15
|
+
doc = Nokogiri::HTML(open(url))
|
16
|
+
|
17
|
+
first_result = doc.css('table table:eq(2)').first
|
18
|
+
info = first_result.css('tr:eq(3) table > tr > td > a').first
|
19
|
+
|
20
|
+
@id = info.attributes['href'].value[1..-1]
|
21
|
+
@title = info.attributes['title'].value
|
22
|
+
|
23
|
+
digits = first_result.css('tr:eq(4) table tr tt').text.split(', ')
|
24
|
+
@sequence = digits.map { |a| a.to_i }
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.Search(l)
|
30
|
+
OEIS.new(l)
|
31
|
+
end
|
32
|
+
end
|
data/lib/oeis/version.rb
ADDED
data/oeis.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "oeis/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "oeis"
|
7
|
+
s.version = Oeis::VERSION
|
8
|
+
s.authors = ["Jordan Scales"]
|
9
|
+
s.email = ["scalesjordan@gmail.com"]
|
10
|
+
s.homepage = "http://github.com/prezjordan/oeis"
|
11
|
+
s.summary = %q{On-Line Encyclopedia of Integer Sequences gem}
|
12
|
+
s.description = %q{Allows you to fetch results from OEIS using a list of integers}
|
13
|
+
|
14
|
+
s.rubyforge_project = "oeis"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
s.add_development_dependency "nokogiri"
|
23
|
+
s.add_runtime_dependency "nokogiri"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oeis
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jordan Scales
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-02-17 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: nokogiri
|
16
|
+
requirement: &70362600493200 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70362600493200
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: nokogiri
|
27
|
+
requirement: &70362600492780 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70362600492780
|
36
|
+
description: Allows you to fetch results from OEIS using a list of integers
|
37
|
+
email:
|
38
|
+
- scalesjordan@gmail.com
|
39
|
+
executables: []
|
40
|
+
extensions: []
|
41
|
+
extra_rdoc_files: []
|
42
|
+
files:
|
43
|
+
- .gitignore
|
44
|
+
- Gemfile
|
45
|
+
- README.md
|
46
|
+
- Rakefile
|
47
|
+
- lib/oeis.rb
|
48
|
+
- lib/oeis/version.rb
|
49
|
+
- oeis.gemspec
|
50
|
+
homepage: http://github.com/prezjordan/oeis
|
51
|
+
licenses: []
|
52
|
+
post_install_message:
|
53
|
+
rdoc_options: []
|
54
|
+
require_paths:
|
55
|
+
- lib
|
56
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
requirements: []
|
69
|
+
rubyforge_project: oeis
|
70
|
+
rubygems_version: 1.8.6
|
71
|
+
signing_key:
|
72
|
+
specification_version: 3
|
73
|
+
summary: On-Line Encyclopedia of Integer Sequences gem
|
74
|
+
test_files: []
|