hse 0.0.1 → 0.1.14

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/lib/hse/cli.rb CHANGED
@@ -91,6 +91,11 @@ module Hse
91
91
  remote(env).get doc
92
92
  end
93
93
 
94
+ desc 'user [EMAIL] push=false', 'get/push user by email'
95
+ def user(email = false, push = false, env = 'default')
96
+ remote(env).user email, push
97
+ end
98
+
94
99
  desc 'build [FILE]', 'parse FILE'
95
100
  def build(fname = 'default')
96
101
  doc = parse.build fname
data/lib/hse/parse.rb CHANGED
@@ -9,37 +9,58 @@ module Hse
9
9
  end
10
10
 
11
11
  def build fname
12
- document = {body:[]}
12
+ state = true
13
+ document = {body:[], more:[]}
14
+ type = fname.split("/").first.sub(/s$/,"")
15
+ document[:type] = type
16
+ if type == "post"
17
+ time = Time.new
18
+ document[:timestamp] = time.to_i #.strftime("%d/%m/%Y %H/%M/%S") # JS: "dd/MM/yyyy HH/mm/ss"
19
+ date = time.strftime("%d-%m-%Y")
20
+ document[:date] = date
21
+ end
13
22
  path = File.expand_path(File.join(app_dir, fname))
14
- #puts "path #{path}"
15
- uuid = UUIDTools::UUID.sha1_create UUIDTools::UUID_DNS_NAMESPACE, "#{fname}"
23
+ uuid = UUIDTools::UUID.sha1_create UUIDTools::UUID_DNS_NAMESPACE, "#{fname}-#{date}"
16
24
  document[:_id] = uuid.to_s
17
- lines = File.readlines path
25
+ lines = File.readlines path rescue return("no path #{path}")
26
+
18
27
  lines.each do |line|
19
28
  line.sub!("\n","").strip!
20
29
  next if line.empty?
21
- unless line.start_with? "#"
22
- document[:body].push line
23
- next
30
+ if line.start_with? "."
31
+ parts = line.split(":")
32
+ key= parts.first
33
+ mark = key.sub(/^\./,"").strip
34
+ fulltitle = line.sub("#{key}:", "").strip
24
35
  end
25
- parts = line.split(":")
26
- key= parts.first
27
- mark = key.sub("#","").strip
28
- tail = line.sub("#{key}:", "").strip
29
36
  case mark
30
- when "title"
31
- document[:title] = tail
32
- document[:short] = tail.split(":").first
37
+ when "ru"
38
+ # titles = fulltitle.split(":")
39
+ # title = titles.first
40
+ # document[:long] = titles.last if titles.size > 1
41
+ document[:ru] = fulltitle
33
42
  when "en"
34
- document[:en] = tail
35
- document[:url] = tail.split(":").first.capitalize.gsub(" ", "-")
43
+ titles = fulltitle.split(":")
44
+ title = titles.first
45
+ document[:en] = fulltitle
46
+ rawurl = title.gsub(" ", "-")
47
+ url = (type == "post") ? "#{date}-#{rawurl}" : rawurl
48
+ document[:url] = url
36
49
  when "de"
37
- document[:de] = tail
50
+ document[:de] = fulltitle
38
51
  when "author"
39
- document[:author] = tail
52
+ document[:author] = fulltitle
40
53
  when "tags"
41
- document[:tags] = tail.strip.split(/[[:punct:]]| /).reject!{|c|c.empty?}
54
+ next unless fulltitle
55
+ tags = fulltitle.strip.split(/[[:punct:]]| /).reject!{|c|c.empty?}
56
+ document[:tags] = tags if tags
57
+ when "more"
58
+ state = false
42
59
  else
60
+ state ? document[:body].push(line) : document[:more].push(line)
61
+ end
62
+ unless line.start_with? "#"
63
+ next
43
64
  end
44
65
  end
45
66
  document
data/lib/hse/remote.rb CHANGED
@@ -48,6 +48,27 @@ module Hse
48
48
  response.code == 200 ? response.body : nil
49
49
  end
50
50
 
51
+ def user email, push
52
+ server = "#{db_url}".split("/")[0..-2].join("/")
53
+ path = "#{server}/_users/org.couchdb.user:#{email}"
54
+ response = Typhoeus::Request.get(path)
55
+ #puts "GET Response: #{response.code} #{response.body[0..200]}"
56
+ response.code == 200 ? response.body : nil
57
+ user = JSON.parse(response.body)
58
+ puts user.inspect
59
+ return unless push
60
+ # curl -vX PUT $HOST/_users/org.couchdb.user:bob -d '{"name":"bob", "password":"bobspassword", "roles":[], "type":"user"}' -H "Content-Type: application/json"
61
+ picture = email.split("@").first
62
+ id = "org.couchdb.user:#{email}"
63
+ newuser = {type:"user", roles:[], _id: id, name: email, password:email, email: email, picture: picture, iterations:1000}
64
+ newuser["_rev"] = user["_rev"] if user
65
+ json = newuser.to_json
66
+ path = "#{server}/_users/#{id}"
67
+ #headers = {"Content-Type" => "application/json"}
68
+ response = Typhoeus::Request.put(path, body:json)
69
+ puts "PUT Response: #{response.code} #{response.body[0..200]}"
70
+ end
71
+
51
72
  def get_doc_revision doc
52
73
  puts "getting current revision"
53
74
  current = get doc
data/lib/hse/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hse
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.14"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.14
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-04-26 00:00:00.000000000 Z
12
+ date: 2013-06-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yard