stashboxr 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/README.rdoc +32 -0
  2. data/VERSION +1 -1
  3. data/lib/stashboxr.rb +15 -8
  4. data/stashboxr.gemspec +51 -0
  5. metadata +7 -5
data/README.rdoc ADDED
@@ -0,0 +1,32 @@
1
+ = StashboxR
2
+
3
+ Original name, I know. This gem will let you communicate with http://stashbox.org via Ruby.
4
+
5
+ You can upload files and edit their metadata with either an anonymous or registered account. You can even delete files you own, should you so desire!
6
+
7
+ == Usage
8
+
9
+ s = Stashboxr::File.new("http://stashbox.org/922233/5.jpg")
10
+ # => <Stash: 5.jpg (public)>
11
+ s.title
12
+ # => nil
13
+ s.title = "Not my file"
14
+ # RuntimeError: You don't have permission to edit this file
15
+ s = Stashboxr::File.upload("a textfile.txt")
16
+ # RuntimeError: The upload wasn't allowed because 'Anonymous users are restricted to image uploads..'
17
+ Stashboxr.login("myusername","mypassword")
18
+ # => true
19
+ s = Stashboxr::File.upload("textfile.txt")
20
+ # => <Stash: textfile.txt>
21
+ s.tags = ["one","spaces won't go thru","a4"]
22
+ # => ["one","spaces_won_t_go_thru","a4"]
23
+ s.add_tag("hello")
24
+ # => ["one","spaces_won_t_go_thru","a4","hello"]
25
+
26
+ Stashboxr.search("a4")
27
+ # => [<Stash: textfile.txt>]
28
+
29
+ == Todo
30
+
31
+ * Add the feature to input a know code for a specific file so it can be edited at a later date
32
+ * Figure out why the know code isn't returned when the API is used to upload a file
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/lib/stashboxr.rb CHANGED
@@ -84,11 +84,11 @@ class Stashboxr
84
84
  })
85
85
  body = Nokogiri::XML(res.body)
86
86
 
87
- case res.code.to_i
88
- when 200
87
+ reason = body.search('//error').inner_text rescue nil
88
+
89
+ if reason.nil?
89
90
  new(body.search('//url').inner_text)
90
91
  else
91
- reason = body.search('//error').inner_text rescue nil
92
92
  raise RuntimeError, "The upload wasn't allowed"<<((reason.nil?) ? "" : " because '#{reason}'")
93
93
  end
94
94
  end
@@ -128,6 +128,7 @@ class Stashboxr
128
128
  @tags = (tags + parse_tags(new_tags)).uniq
129
129
  @saved = false
130
130
  save if @autosave
131
+ @tags
131
132
  end
132
133
  alias :add_tags :add_tag
133
134
 
@@ -136,14 +137,16 @@ class Stashboxr
136
137
  @tags = (tags - parse_tags(new_tags)).uniq
137
138
  @saved = false
138
139
  save if @autosave
140
+ @tags
139
141
  end
140
142
  alias :remove_tags :remove_tag
141
143
 
142
144
  # Reset the tags for this file to the ones in the given array
143
- def set_tags(new_tags)
145
+ def tags=(new_tags)
144
146
  @tags = parse_tags(new_tags)
145
147
  @saved = false
146
148
  save if @autosave
149
+ @tags
147
150
  end
148
151
 
149
152
  def title=(title)
@@ -195,9 +198,13 @@ class Stashboxr
195
198
  end
196
199
 
197
200
  def inspect
198
- keys = [@public ? "public" : "private"]
199
- keys.push("nsfw") if !@sfw and @metadata
200
- "<Stash: #{@filename} (#{keys * ", "})>"
201
+ if @metadata
202
+ keys = [@public ? "public" : "private"]
203
+ keys.push("nsfw") if !@sfw
204
+ "<Stash: #{@filename} (#{keys * ", "})>"
205
+ else
206
+ "<Stash: #{@filename}>"
207
+ end
201
208
  end
202
209
 
203
210
  # Grab metadata from stashbox.org
@@ -245,7 +252,7 @@ class Stashboxr
245
252
  private
246
253
  def parse_tags(new_tags)
247
254
  [new_tags].flatten.collect do |tag|
248
- tag.downcase.gsub(/[^a-z0-9_-]/,"")
255
+ tag.downcase.gsub(/[^a-z0-9_-]+/,"_")
249
256
  tag = nil if tag.empty?
250
257
  end.compact.uniq
251
258
  end
data/stashboxr.gemspec ADDED
@@ -0,0 +1,51 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{stashboxr}
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["JP Hastings-Spital"]
12
+ s.date = %q{2010-06-08}
13
+ s.description = %q{Upload files to stashbox.org and manage their metadata. User accounts or anonymous uploads!}
14
+ s.email = %q{jphastings@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ "README.rdoc",
20
+ "Rakefile",
21
+ "VERSION",
22
+ "lib/stashboxr.rb",
23
+ "stashboxr.gemspec"
24
+ ]
25
+ s.homepage = %q{http://github.com/jphastings/StashboxR}
26
+ s.rdoc_options = ["--charset=UTF-8"]
27
+ s.require_paths = ["lib"]
28
+ s.rubygems_version = %q{1.3.7}
29
+ s.summary = %q{A ruby api for the stashbox.org website}
30
+ s.test_files = [
31
+ "test/helper.rb",
32
+ "test/test_stashboxr.rb"
33
+ ]
34
+
35
+ if s.respond_to? :specification_version then
36
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
37
+ s.specification_version = 3
38
+
39
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
40
+ s.add_runtime_dependency(%q<mechanize>, [">= 1.0.0"])
41
+ s.add_development_dependency(%q<Shoulda>, [">= 0"])
42
+ else
43
+ s.add_dependency(%q<mechanize>, [">= 1.0.0"])
44
+ s.add_dependency(%q<Shoulda>, [">= 0"])
45
+ end
46
+ else
47
+ s.add_dependency(%q<mechanize>, [">= 1.0.0"])
48
+ s.add_dependency(%q<Shoulda>, [">= 0"])
49
+ end
50
+ end
51
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stashboxr
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - JP Hastings-Spital
@@ -54,12 +54,14 @@ executables: []
54
54
 
55
55
  extensions: []
56
56
 
57
- extra_rdoc_files: []
58
-
57
+ extra_rdoc_files:
58
+ - README.rdoc
59
59
  files:
60
+ - README.rdoc
60
61
  - Rakefile
61
62
  - VERSION
62
63
  - lib/stashboxr.rb
64
+ - stashboxr.gemspec
63
65
  - test/helper.rb
64
66
  - test/test_stashboxr.rb
65
67
  has_rdoc: true